我试图将图像分解成组件。这是我的图像 -
这是代码 -
image=imread('compo1.jpg');
image=imresize(image,[394 464]);
image = im2bw(image);
image=imcomplement(image);
[imx imy]=size(image);
new1=zeros(imx,imy);
compo = bwlabel(image,8) ;
mx=max(max(compo));
for i=1:mx
[r,c] = find(compo==i);
new1=zeros(imx,imy);
rc = [r c];
[sx sy]=size(rc);
for j=1:sx
x1=rc(j,1);
y1=rc(j,2);
new1(x1,y1)=1;
end
imshow(new1);
s = regionprops(new1, 'BoundingBox' );
A =(s.BoundingBox(4) / s.BoundingBox(3))
end
我正在使用bwlabel
但是这里我的图像有一个连接的组件,因此它不起作用。我想将每一行分开作为单独的段。我的主要目标是找到每个线段的宽高比。如何在不使用bwlabel
的情况下执行此操作?
答案 0 :(得分:0)
您可以使用Hough Transform来检测线条,但输出将采用参数形式。因此,您可以选择卷积技术,其中针对特定方向的内核与图像进行卷积,以获得该特定方向的线。您可以参考此link以获取更详细的说明。