邊緣檢測算子_Matlab

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/wangxiaobei2017/article/details/78058973

邊緣檢測的基本步驟是:原始圖像經過平滑濾波產生平滑圖像,在經過銳化濾波生成銳化圖像,然後纔是邊緣檢測生成二值圖像,在經過霍夫變換,連接邊緣。
通過Matlab運行了幾種邊緣檢測算子,梯度算子(一階):Roberts,Prewitt,Sobel、高斯-拉普拉斯算子(二階)和Canny邊緣檢測算子。

% 練習邊緣檢測函數,通過青豆的圖片,檢測出青豆的邊緣

% 首先通過rgb2gray 把彩色圖像轉換成灰度圖像
clear all;
I1 = imread('qingdou.jpg');
%I1 = imread('zouxian.jpg');
I = rgb2gray(I1);
subplot(2,3,1);
imshow(I);

% 通過邊緣函數進行處理並查看效果

bw1 = edge(I, 'sobel');
bw2 = edge(I, 'prewitt');
bw3 = edge(I, 'roberts');
bw4 = edge(I, 'log');
bw5 = edge(I, 'canny');
subplot(2,3,2);imshow(bw1);title('sobel');
subplot(2,3,3);imshow(bw2);title('prewitt');
subplot(2,3,4);imshow(bw3);title('roberts');
subplot(2,3,5);imshow(bw4);title('log');
subplot(2,3,6);imshow(bw5);title('canny');

直接對青豆圖像的處理效果不是很明顯,效果如下:
這裏寫圖片描述

然後對一個走線圖進行了試驗,效果還可以
這裏寫圖片描述
總體來看,Canny算子的效果不錯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章