本文主要總結一下在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
來源:CSDN
原文:https://blog.csdn.net/Q1302182594/article/details/50394576
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!