本文主要总结一下在matlab中可用于进行轮廓提取的函数。
1 bwperim
根据参考资料[2]的提示,可以使用bwperim()函数进行轮廓提取,具体代码如下:
%读取原图
im = imread( filepath );
imshow(im);
title('原图');
% 转二值图像
bw = im2bw( im );
%轮廓提取
contour = bwperim(bw);
figure
imshow(contour);
title('轮廓')
原图和所提取的轮廓分别如图1和图2所示。
图1 原图
图2 轮廓
2 edge
可以借助edge()函数进行边界检测,算子可以选择canny,soble等等。具体代码如下:
%读取原图
im = imread( filepath );
imshow(im);
title('原图');
% 转二值图像
bw = im2bw( im );
% 边界检测
contour = edge(bw ,'canny');
figure
imshow(contour);
title('边界')
对图1的检测效果如图3所示:
图3 edge检测结果
参考资料
[1]轮廓提取
[2]matlab 二值图像 外轮廓提取
[3]matlab 二进制图像轮廓提取
---------------------
作者:OneSea-V3.0
来源:****
原文:https://blog.****.net/Q1302182594/article/details/50394576
版权声明:本文为博主原创文章,转载请附上博文链接!