开运算和闭运算的效果,先开运算后闭运算
开操作就是先腐蚀后膨胀,闭操作则相反。他们的目的:前者是消除一些孤立点并断开物体之间的“藕断丝连”(不知道用什么词表达更好),后者则是实现填补“空点”的功能。至于腐蚀功能和膨胀功能这里说不清,参考(主要看懂后面的示图)
http://www.cnblogs.com/slysky/archive/2011/10/16/2214015.html
下面是我自己写的代码,加入阈值判断功能,有注释。鄙人目前还不会使用matlab。
java实现:http://img.canyinms.com/202311/12/09/h3pi=imread('image.jpg'); i1=rgb2gray(i); 转灰度图像 i2=im2bw(i1); 二值化 i3 = bwmorph(i2,'close'); 闭运算 imshow(i3) i4 = bwmorph(i2,'open'); 开运算 figure, imshow(i4) bwmorph还支持类似bothat tophat thin等操作 个体看下help参数说...
二值化的阈值你怎么确定的 matlab里面的T=graythresh()确定的阈值是Otsu方法确定的 效果是可以的 车辆旁边的干扰因素可以在二值化后用数字图像的形态学膨胀腐蚀以及开运算和闭运算去掉
如果要算车辆在图像中的面积可以边缘检测之后和形态学处理后的图像联合处理并做掩模运算基本可分割出来车辆的目标以及整个车辆的区域
1、dilate函数
该函数能够实现二值图像的膨胀操作,有以下形式:
BW2=dilate(BW1,SE)
BW2=dilate(BW1,SE,…,n)
其中:BW2=dilate(BW1,SE)表示使用二值结构要素矩阵SE队图像数据矩阵BW1执行膨胀操作。输入图像BW1的类型为double或unit8,输出图像BW2的类型为unit8。BW2=dilate(BW1,SE,…,n)表示执行膨胀操作n次。
2、erode 函数
该函数能够实现二值图像的腐蚀操作,有以下形式:
BW2= erode(BW1,SE)
BW2= erode(BW1,SE,…,n)
其中:BW2= erode(BW1,SE)表示使用二值结构要素矩阵SE队图像数据矩阵BW1执行腐蚀操作。输入图像BW1的类型为double或unit8,输出图像BW2的类型为unit8。BW2= erode(BW1,SE,…,n)表示执行腐蚀操作n次。
3、bwmorph函数
该函数的功能是能实现二值图像形态学运算。它的格式如下:
① BW2=bwmorph(BW1,operation)
② BW2=bwmorph(BW1,operation,n)
其中:对于格式①,bwmorph函数可对二值图像BW1采用指定的形态学运算;对于格式②,bwmorph函数可对二值图像BW1采用指定的形态学运算n次。operation为下列字符串之一:
‘clean’:除去孤立的像素(被0包围的1)
‘close’:计算二值闭合
‘dilate’:用结构元素计算图像膨胀
‘erode’:用结构元素计算图像侵蚀
4、imclose函数
该函数功能是对灰度图像执行形态学闭运算,即使用同样的结构元素先对图像进行膨胀操作后进行腐蚀操作。调用格式为:
IM2=imclose(IM,SE)
IM2=imclose(IM,NHOOD)
5、imopen函数
该函数功能是对灰度图像执行形态学开运算,即使用同样的结构元素先对图像进行腐蚀操作后进行膨胀操作。调用格式为:
IM2=imopen(IM,SE)
IM2=imopen(IM,NHOOD)
3用MATLAB编程实现图像去噪
3.1 二值形态学消除图像噪声
用二值形态学方法对图像中的噪声进行滤除的基本思想[4]是:使用具有一定形态的结构元素去度量和提取图像中的对应形状,以达到消除图像噪声的目的。下面是二值形态学消除图像噪声的一个实例。
首先将tire.tif图像加入椒盐噪声,这种噪声前面已经介绍过,它在亮的图像区域内是暗点,而在暗的图像区域内是亮点,再对有噪声图像进行二值化操作,再对有噪声图像进行开启操作,由于这里的结构元素矩阵比噪声的尺寸要大,因而开启的结果是将背景上的噪声点去除了,最后对前一步得到的图像进行闭合操作,将轮胎上的噪声点去掉了。
下面是算法实现的程序代码:
I1=imread('tire.tif'); %读灰度图tire.tif
I2=imnoise(I1,'salt & pepper'); %在图像上加入椒盐噪声
figure,imshow(I2) %显示加椒盐噪声后的灰度图像
I3=im2bw(I1); %把加椒盐噪声后的灰度图像二值化
figure,imshow(I3) %显示二值化后的图像
I4=bwmorph(I3,'open'); %对二值噪声图像进行二值形态学开运算
figure,imshow(I4) %显示开运算后的图像
I5=bwmorph(I4,'close'); %对上述图像进行形态学闭运算
figure,imshow(I5) %显示最终处理后的图像
开运算属于形态学图像处理,是先腐蚀后膨胀,作用是:可以使边界平滑,消除细小的尖刺,断开窄小的连接,保持面积大小不变等。
引用格式:
a=imread('104.tif');
b=strel('square',2);
c=imopen(a,b);