Matlab實(shí)現(xiàn)圖像邊緣檢測(cè)
為了在一幅圖像 f 的(x,y)位置尋找邊緣的強(qiáng)度和方向,所選擇的工具就是梯度,梯度使用向量來表示:

該向量指出了圖像 f 在位置(x,y)處的最大變化率的方向,梯度向量的大小表示為:

它是梯度向量方向變化率的值。
梯度向量的方向表示為:

梯度算子
roberts算子:

sobel算子:

prewitt算子:

Matlab實(shí)現(xiàn)
function output = my_edge(input_img,method)
if size(input_img,3)==3
input_img=rgb2gray(input_img);
end
input_img=im2double(input_img);
sobel_x=[-1,-2,-1;0,0,0;1,2,1];
sobel_y=[-1,0,1;-2,0,2;-1,0,1];
prewitt_x=[-1,-1,-1;0,0,0;1,1,1];
prewitt_y=[-1,0,1;-1,0,1;-1,0,1];
psf=fspecial('gaussian',[5,5],1);
input_img=imfilter(input_img,psf);%高斯低通濾波,平滑圖像,但可能會(huì)使圖像丟失細(xì)節(jié)
input_img=medfilt2(input_img); %中值濾波消除孤立點(diǎn)
[m,n]=size(input_img);
output=zeros(m,n);
if nargin==2
if strcmp(method,'sobel')
for i=2:m-1
for j=2:n-1
local_img=input_img(i-1:i+1, j-1:j+1);
%近似邊緣檢測(cè),加快速度 %output(i,j)=abs(sum(sum(sobel_x.*local_img)))+abs(sum(sum(sobel_x.*local_img)));
output(i,j)=sqrt(sum(sum(sobel_x.*local_img))^2+sum(sum(sobel_y.*local_img))^2);
end
end
elseif strcmp(method,'prewitt')
for i=2:m-1
for j=2:n-1
local_img=input_img(i-1:i+1, j-1:j+1);
output(i,j)=sqrt(sum(sum(prewitt_x.*local_img))^2+sum(sum(prewitt_y.*local_img))^2);
end
end
else
errordlg('maybe you should input sobel or prewitt');
end
else %如果不輸入算子的名稱,默認(rèn)使用roberts算子進(jìn)行邊緣檢測(cè)
for i=1:m-1
for j=1:n-1
output(i,j)=abs(input_img(i,j)-input_img(i+1,j+1))+ ...
abs(input_img(i+1,j)-input_img(i,j+1));
end
end
end
output=imadjust(output);%使邊緣圖像更明顯
thresh=graythresh(output);%確定二值化閾值
output=bwmorph(im2bw(output,thresh),'thin',inf);%強(qiáng)化細(xì)節(jié)
end
代碼效果:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Django rest_framework實(shí)現(xiàn)RESTful API
這篇文章主要介紹了詳解Django rest_framework實(shí)現(xiàn)RESTful API,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
python 添加用戶設(shè)置密碼并發(fā)郵件給root用戶
這篇文章主要介紹了python 添加用戶設(shè)置密碼并發(fā)郵件給root用戶的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
使用python實(shí)現(xiàn)拉鉤網(wǎng)上的FizzBuzzWhizz問題示例
這篇文章主要介紹了使用python實(shí)現(xiàn)拉鉤網(wǎng)上的FizzBuzzWhizz問題示例,需要的朋友可以參考下2014-05-05
分位數(shù)回歸模型quantile regeression應(yīng)用詳解及示例教程
這篇文章主要為大家介紹了介紹了分位數(shù)回歸quantile regeression的概念詳解及代碼示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11
Python讀取sqlite數(shù)據(jù)庫文件的方法分析
這篇文章主要介紹了Python讀取sqlite數(shù)據(jù)庫文件的方法,結(jié)合實(shí)例形式分析了Python引入sqlite3模塊操作sqlite數(shù)據(jù)庫的讀取、SQL命令執(zhí)行等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08

