使用MATLAB进行分割图像处理

时间:2015-06-21 18:20:12

标签: matlab image-processing

我正在尝试使用以下代码对图像进行分割。

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组件。前两个组件是 - enter image description here enter image description here

那为什么会发生这种情况呢?在我测试的所有照片中,只要有一个苯环,它就会被分成另一个组件。我怎么能把它分成两个组件 - 结构和'7191'?

1 个答案:

答案 0 :(得分:1)

您正在分析图片中连接的白色像素的区域,因此您得到:

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

总共有六个对象。

在处理之前反转您的图像,您将获得所有的行和字母。