阿洲的程式教學
關於Qt、OpenCV、影像處理演算法
找邊緣(Canny)
Sobel或Laplace都是基於微分的邊緣檢測算法,只有當雜訊極少,或者先用平滑濾波
抑制雜訊後,才能得到理想結果。
在邊緣檢測中,抑制雜訊和邊緣精確定位很難同時滿足,當我們通過平滑濾波去除噪
音的同時,也增加了邊緣定位的不確定性,而提高邊緣檢算子對邊緣敏感度的同時,
也增加了對雜訊的敏感度,這邊介紹Canny邊緣檢測算子,Canny在抗雜訊和精確定
位間有不錯的效果,OpenCV提供Canny()函式,來進行Canny邊緣檢測,以下為流
程,OpenCV已將步驟封裝好,使用時只要呼叫Canny()即可。
1. 去雜訊:使用5×5的高斯濾波,我們根據下面的高斯函數,以σ=1.3帶入後得到高斯
濾波的各個參數。
2. 記錄梯像素梯度方向和強度:以Sobel運算子計算水平和垂直梯度(Gx、Gy),數學
上為兩者平方後相加,得到梯度強度(G),實際上由於運算效率上的考量,OpenCV
預設將G設為Gx和Gy的絕對值相加,θ為梯度方向,我們將其分類到0、45、90、
135度之一,也就是假設此點我們計算的θ為0~22.5或157.5~180,便將此點θ分類為
0。
评论0