根据参考资料[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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)