如何用Matlab对二值图像进行矩形轮廓提取

如何用Matlab对二值图像进行矩形轮廓提取,第1张

1 bwperim

根据参考资料[2]的提示,可以使用bwperim()函数进行轮廓提取,具体代码如下:

%读取原图

im = imread( filepath )

imshow(im)

title('原图')

% 转二值图像

bw = im2bw( im )

%轮廓提取

contour = bwperim(bw)

figure

imshow(contour)

title('轮廓')

原图和所提取的轮廓分别如图1和图2所示。

2 edge

可以借助和盯edge()函茄棚卖数进行边界检测,算子可以选择canny,soble等等。具体颤逗代码如下:

%读取原图

im = imread( filepath )

imshow(im)

title('原图')

% 转二值图像

bw = im2bw( im )

% 边界检测

contour = edge(bw ,'canny')

figure

imshow(contour)

title('边界')

我帮你改了一下代码,你把bw=bwperim(f)(包括这句)以后的代码都去掉,用我给你写的这个,就基圆晌可以提取出图像上下左右边界的坐标了。腔枝

[x,y]=size(f)

for i=1:x

f(i,2)=0

f(i,y-1)=0

end

for j=1:y

f(2,j)=0

f(3,j)=0

f(x-1,j)=0

f(x-2,j)=0

end

[m1,n1]=find(f)

maxx=max(m1)

maxy=max(n1)

minx=min(m1)

miny=min(n1)

你可以输出一下看看是不是你想要的结果,搏锋希望对你能有所帮助。O(∩_∩)O


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12429152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存