使用sobel檢測器來提取邊緣

2021-09-22 02:19:56 字數 932 閱讀 5280

%使用sobel檢測器來提取邊緣

f=imread('building.tif');%讀取影象

subplot(3,2,1),imshow(f),title('原影象')

[gt,t]=edge(f,'sobel','vertical');%用sobel來提取垂直邊緣檢測

subplot(3,2,2),imshow(gt),title('垂直sobel掩模後影象')

**=edge(f,'sobel',0.15,'vertical');%閾值t=0.15的sobel提取垂直邊緣檢測

subplot(3,2,3),imshow(**),title('指定閾值後影象')

gboth=edge(f,'sobel',0.15);%預設both的閾值t=0.15的邊緣檢測

subplot(3,2,4),imshow(gboth),title('指定閾值水平邊緣和垂直邊緣後影象')

w45=[-2 -1 0;-1 0 1;0 1 2]%指定掩模(45°)

g45=imfilter(double(f),w45,'replicate');%指定掩模的replicate的濾波器

t=0.3*max(abs(g45(:)));%指定閾值

g45=g45>=t;%查詢大於t的值

subplot(3,2,5),imshow(g45),title('45°邊緣後影象')

w45=[0 1 2;-1 0 1;-2 -1 0];%指定掩模(-45°)

g45=imfilter(double(f),w45,'replicate');%指定掩模的replicate的濾波器

t=0.3*max(abs(g45(:)));%指定閾值

g45=g45>=t;%查詢大於t的值

subplot(3,2,6),imshow(g45),title('-45°邊緣後影象')

Marr Hildreth邊緣檢測器

用於邊緣檢測的運算元應該有兩個顯著的特點 1.它應該能夠計算圖中每乙個點處的一階導數或者二階導數的數字近似的微分運算元。2.它能夠被 調整 以便在任何期望的尺寸上其作用。因此,大的運算元也可以用於檢測模糊邊緣,小的運算元可以用來檢測銳度集中的精細細節。滿足上面兩個要求的最好運算元是濾波器 2g na...

OpenCV 36 Canny邊緣檢測器

1986年,john canny 提出乙個很好的邊緣檢測演算法,被稱為canny編邊緣檢測器。canny邊緣檢測器是一種經典的影象邊緣檢測與提取演算法,應用廣泛,主要是因為canny邊緣檢測具備以下特點 有效的雜訊抑制 更強的完整邊緣提取能力 canny演算法是如何做到精準的邊緣提取的,主要是靠下面...

使用Adaboost訓練檢測器

做了一段時間的adaboost訓練乙個可以檢測張開的手掌的檢測器,最後訓練出來的效果不錯,在保證較高的檢測率的情況下還能保持幾乎沒有誤檢的情況出現,adaboost用在物體檢測上的效果讓我大吃一驚。adaboost的特點是誤檢測少,且速度快,因為在檢測的時候採用滑窗法對視窗挨個進行乙個二分類 是手掌...