OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 6776|回复: 5

cvErode疑问

[复制链接]
发表于 2008-12-18 16:08:26 | 显示全部楼层 |阅读模式
cvErode不是腐蚀的吗?怎么我在二值图上进行腐蚀运算,黑色区域反而膨胀了,怎么回事?
回复

使用道具 举报

发表于 2008-12-18 16:29:23 | 显示全部楼层

cvErode疑问

以为腐蚀是对值为1的像素进行的。在灰度图像中,黑色是像素值低的(比如0),白色是像素值高的(比如1)。你腐蚀了1(白色区域),自然黑色区域就变大了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-18 21:08:54 | 显示全部楼层

cvErode疑问

恩 谢谢 你的意思是说腐蚀是腐蚀白色的点。可是我要腐蚀黑色的物体怎么办呢?谢谢!
回复 支持 反对

使用道具 举报

发表于 2008-12-19 09:29:27 | 显示全部楼层

cvErode疑问

这个……我一般就是先反色(1减原图像),然后形态学处理,然后再反回来。也许别人有更好的办法
用代码就是
IplImage* t_image = cvCreateImage(cvGetSize(originImage), IPL_DEPTH_8U, 1);
IplImage* finalImage = cvCreateImage(cvGetSize(originImage), IPL_DEPTH_8U, 1);
CvScalar one = cvScalar(1);

//用1减原图像得到中间图像
cvSubRS(orginImage, one, t_image);

//腐蚀运算
IplConvKernel* strel = cvCreateStructuringElementEx( 3, 3, 1, 1, CV_SHAPE_RECT);
cvErode(t_image, t_image, strel);
cvReleaseStructuringElement( strel);

//1减经过腐蚀的中间图像,得到结果图像
cvSubRS(t_image, one, finalImage);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-19 17:21:49 | 显示全部楼层

cvErode疑问

哎 一般的要腐蚀的都是黑色的啊   真是麻烦   那我腐蚀的时候用膨胀操作  膨胀的时候用腐蚀操作 这样会不会用问题呢!
回复 支持 反对

使用道具 举报

发表于 2008-12-20 09:52:39 | 显示全部楼层

cvErode疑问

貌似可以吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-5-2 10:08 , Processed in 0.008784 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表