转载自:https://blog.csdn.net/q1302182594/article/details/50394576
本文主要总结一下在matlab中可用于进行轮廓提取的函数。
1 bwperim
根据参考资料[2]的提示,可以使用bwperim()函数进行轮廓提取,具体代码如下:
- %读取原图
- im = imread( filepath );
- imshow(im);
- title('原图');
- % 转二值图像
- bw = im2bw( im );
- %轮廓提取
- contour = bwperim(bw);
- figure
- imshow(contour);
- title('轮廓')
原图和所提取的轮廓分别如图1和图2所示。
![](https://i-blog.csdnimg.cn/blog_migrate/935569957fa912b536e2352ca5cac250.png)
图1 原图
图2 轮廓
2 edge
可以借助edge()函数进行边界检测,算子可以选择canny,soble等等。具体代码如下:
- %读取原图
- im = imread( filepath );
- imshow(im);
- title('原图');
- % 转二值图像
- bw = im2bw( im );
- % 边界检测
- contour = edge(bw ,'canny');
- figure
- imshow(contour);
- title('边界')
图3 edge检测结果
参考资料
[1]轮廓提取