在MATLAB中计算与图像边界相交的对象数
我有带有各种标志的RGB图像。我的主要目标是计算与图像边界接触的标志。 方法与问题 我首先加载图像[Fig。1],然后将其转换为灰度并应用中值滤波器以消除一些噪声[图1]。2]。然后,我用0.2的阈值对它进行了二值化处理,结果如图3所示。这时我得到了二值化图像,但问题是,属于同一符号的某些部分出现在各个区域中,而不仅仅是一个区域。现在,我的目标是合并属于同一对象的区域,因此我可以bwlabel用来计算图像中有多少个符号,并imclearborder用来消除边界中的符号,然后bwlabel再次使用来获得他们俩。 我的方法是使用bwmorph,Dilate扩大对象,然后尝试用imfill,填充它们holes。但是问题是,如果我少量扩张它们[图。4],imfill似乎并没有填充它们,如果我将它们大量扩张[图5],所有对象就会开始合并:( 码 img=im2double(imread('image.png')); figure, imshow(img) img_gray=rgb2gray(img); imshow(img_gray); img_mediana=medfilt2(img_gray, [3 3]); figure, imshow(img_mediana); img_bin=im2bw(img_mediana, 0.2); imshow(img_bin) img_dilate=bwmorph(img_bin, 'Dilate', 10); imshow(img_dilate) img_fill=imfill(img_dilate, 'Holes'); figure, imshow(img_fill) 图 图1: 图1 http://dl.dropbox.com/u/5272012/1.png 图2: 图2 http://dl.dropbox.com/u/5272012/2.png 图3: 图3 http://dl.dropbox.com/u/5272012/3.png 图4: 图4 http://dl.dropbox.com/u/5272012/4.png 图5: 图5 http://dl.dropbox.com/u/5272012/5.png