opencv Canny邊緣檢測(c )

2021-10-11 04:21:48 字數 2250 閱讀 9288

canny 邊緣檢測演算法是 john f. canny 於2023年開發出來的乙個多級邊緣檢測演算法,也被很多人認為是邊緣檢測的最優演算法。

降噪由於邊緣檢測容易受到影象中雜訊的影響,因此第一步是使用5x5高斯濾波器消除影象中的雜訊。

計算梯度值和梯度方向

通過點乘乙個sobel或其它運算元得到不同方向的梯度值 gx,

g_x ,

gx​,

g

yg_y

gy​。

綜合梯度通過以下公式計算梯度值和梯度方向:

e dg

e_gr

adie

nt(g

)=gx

2+gy

2ang

le(θ

)=tan⁡−1

(gyg

x)edge\_gradient \; (g) = \sqrt \\ angle \; (\theta) = \tan^ \bigg(\frac\bigg)

edge_g

radi

ent(

g)=g

x2​+

gy2​

​ang

le(θ

)=tan−1(

gx​g

y​​)

非極大值抑制

在高斯濾波過程中,邊緣有可能被放大了。這個步驟使用乙個規則來過濾不是邊緣的點,使邊緣的寬度盡可能為1個畫素點:如果乙個畫素點屬於邊緣,那麼這個畫素點在梯度方向上的梯度值是最大的。否則不是邊緣,將灰度值設為0。

使用上下閥值來檢測邊緣

該階段確定哪些邊緣全部是真正的邊緣,哪些不是。為此,我們需要兩個閾值minval和maxval。強度梯度大於maxval的任何邊緣必定是邊緣,而小於minval的那些邊緣必定是非邊緣,因此將其丟棄。介於這兩個閾值之間的物件根據其連通性被分類為邊緣或非邊緣。如果將它們連線到「邊緣」畫素,則將它們視為邊緣的一部分。否則,它們也將被丟棄。見下圖:

邊緣a在maxval之上,因此被視為「確定邊緣」。儘管邊c低於maxval,但它連線到邊a,因此也被視為有效邊,我們得到了完整的曲線。但是邊緣b儘管在minval之上並且與邊緣c處於同一區域,但是它沒有連線到任何「確保邊緣」,因此被丟棄。因此,非常重要的一點是我們必須相應地選擇minval和maxval以獲得正確的結果。

cv_exports_w void

canny

( inputarray image, outputarray edges,

double threshold1,

double threshold2,

int aperturesize =3,

bool l2gradient =

false

);

@param image // 8位輸入影象。

@param邊緣 //輸出邊緣圖; 單通道8位影象,其大小與image相同。

@param threshold1 //下閾值minval。

@param threshold2 //上閾值maxval。

@param holesize //sobel運算子的範圍大小。

@param l2gradient //乙個標誌,指示是否應使用更準確的l

2l_2

l2​ norm =(d

i/dx

)2+(

di/d

y)2=\sqrt

=(di/d

x)2+

(di/

dy)2

​來計算影象梯度幅度(l2gradient = true),或者使用預設值l

1l_1

l1​ norm =∣d

i/dx

∣+∣d

i/dy

∣=|di/dx|+|di/dy|

=∣di/d

x∣+∣

di/d

y∣就已經足夠(l2gradient = false)。

int

main()

原圖:

結果:

opencv Canny邊緣檢測

opencv 中的 canny 邊緣檢測 了解 canny 邊緣檢測的概念 學習函式 cv2.canny 1 原理 canny 邊緣檢測是一種非常流行的邊緣檢測演算法,是 john f.canny 在1986 年提出的。它是乙個有很多步構成的演算法,我們接下來會逐步介紹。1.1 雜訊去除 由於邊緣檢...

OpenCV Canny邊緣檢測

文章介紹如何用opencv python來使用canny運算元。本文介紹使用opencv python實現基本的濾波處理 本文不介詳細的理論知識,讀者可從其他資料中獲取相應的背景知識。筆者推薦清華大學出版社的 影象處理與計算機視覺演算法及應用 第2版 原型 opencv python中canny函式...

《OpenCV》 Canny 邊緣檢測

1 去噪 邊緣檢測容易受到影象中雜訊的影響,故首先需要用5x5的高斯濾波器去除影象中的雜訊。2 計算影象的強度梯度 將去噪 平滑 後的影象由sobel核心分別在水平和垂直方向上求導 一階微分 得到gx和gy。根據這兩幅梯度圖,求得每個畫素的邊緣梯度大小和方向。3 非極大值抑制 得到梯度大小和方向後,...