梯度運算元:是一階導數運算元,是水平g(x),g(y)方向對應模板的組合,也有對角線方向。
常見的一階運算元:
roberts交叉運算元,rrewitt運算元,sobel運算元
-100-1
roberts交叉運算元是對角線方向的梯度運算元,對應的水平方向和豎直方向的梯度分別為:
robert運算元優缺點:
優點:邊緣定位比較準,適用於邊緣明顯且雜訊較少的影象。
缺點:沒有描述水平和 豎直方向的灰度變化,只是關注了對角線方向,魯棒性差,由於點本身參與了梯度計算,不能有效抑制雜訊的干擾。
sobel運算元:
1-202
-10-1
1000
-1-2
-1sobel運算元引入了類似區域性加權平均的運算,對邊緣的定位比prewitt 運算元好。
sobel運算元函式:
dst=cv2.sobel(src,ddepth,dx,dy,ksize)
引數說明:引數2:影象的深度,-1表示採用的與原影象相同寫深度。目標影象的深度必須大於等於原影象的深度;
引數3,4.dx,dy表示的是求導的階數,0表示這個方向上沒有求導,一般為0,1,2
引數5:ksize是sobel運算元的大小,必須為1,3,5,7.
#sobel運算元練習
梯度圖結果:
canny邊緣檢測演算法
先平滑後求導。
評價邊緣檢測效能優劣的指標:
1好的訊雜比,2高的定位效能,3虛假相應邊緣應該得到最大抑制。
cv2.canny(image,th1,th2,size)
image:源影象
dth1:閾值1
th2:閾值2
size:可選引數,sobel運算元的大小
步驟:1彩色影象轉換為灰度影象(以灰度圖單通道圖讀入)
2對影象進行高斯模糊(去噪)
3計算影象梯度,根據梯度計算影象邊緣幅值與角度
4沿梯度方向進行非極大值抑制(邊緣細化)
5雙閾值邊緣連線處理
6二值化影象輸出結果
實驗測試用的原圖:
Opencv 邊緣檢測
2018 7 5 凌晨 萬萬要認真,今晚抄書都能抄錯,是在該打。書上的一行 graysrc cv2.cvtcolor blurredsrc,cv2.color bgr2gray 硬生生被我抄成了 graysrc cv2.cvtcolor blurredsrc,cv2.color bayer bgr2...
opencv 邊緣檢測
include stdafx.h include using namespace cv using namespace std int edgethresh 1 宣告 原始,灰度,和 canny邊緣 mat image,cedge mat gray,edge void ontrackbar int,...
opencv之邊緣檢測
canny檢測 發展 canny 的目標是找到乙個最優的邊緣檢測演算法,最優邊緣檢測的含義是 好的檢測 演算法能夠盡可能多地標識出影象中的實際邊緣。好的定位 標識出的邊緣要盡可能與實際影象中的實際邊緣盡可能接近。最小響應 影象中的邊緣只能標識一次,並且可能存在的影象雜訊不應標識為邊緣。為了滿足這些要...