使用 MATLAB 进行图像分割处理

Segmentation image processing using 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);

这是我的输入图像-

我想把它分成 2 个连接的组件——一个是实际结构,另一个是 7181。相反,我得到的是 6 components.The 前两个组件是-

那么为什么会发生这种情况?在我测试的所有图片中,只要有一个苯环,它就会被分离成另一个 component.How 我可以将它分成两个部分 - 结构和“7191”吗?

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

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

总共有六个对象。

在处理之前反转你的图像,你会得到所有的线条和字母。