2015-06-21 315 views
1

我想分割我的图像使用下面的代码。使用MATLAB分割图像处理

image=imread('mob.jpg'); 
image = im2bw(image); 
L = bwlabel(image,8);% Calculating connected components 
mx=max(max(L)) 
[r,c] = find(L==1); 
rc = [r c]; 
[sx sy]=size(rc); 
n1=zeros(imx,imy); 
for i=1:sx 
    x1=rc(i,1); 
    y1=rc(i,2); 
    n1(x1,y1)=255; 
end 
imshow(image); 
figure, 
imshow(n1); 

这是我的输入图像 - enter image description here

我想把它分成2连接成品的配件,一个实际的结构和其他7181。相反我越来越6 components.The第一双组份是 - enter image description here enter image description here

那么,为什么会出现这种情况在所有我测试的图片每当有苯环它被分离到另一个COMPONE? nt。我怎样才能把它分成两个部分 - 结构和'7191'?

回答

1

您分析连接白色像素的面积在你的形象,所以你得到:

  • 白色背景(1)
  • 苯环的内部区域(1)
  • 两个O S(2)
  • 8(2)
内部区域的内部区

这些共有六个对象。

在处理之前颠倒你的形象,你会得到所有的线条和字母。

+0

非常感谢。我还有一个问题,我有什么办法可以加入所有债券并删除字母? – Noober

+1

@Noober - 是的,你在这里问这个问题:http://stackoverflow.com/questions/30934611/line-detection-in-image/30942695#30942695 - 有三个很好的答案,为你和你找到线路没有接受任何一个。 – rayryeng