在OpenCV裡實現均值平滑5

2021-09-27 06:10:19 字數 442 閱讀 5318

從前面來看已經可以把積分影象的功能整合到opencv裡,那麼在它裡面也有相應的均值平滑的函式cv2.blur,這個函式實現的功能與前面實現快速計算平滑的方法是一樣的,只不過它可以處理彩色影象,因為它可以把彩色進行分離成三個顏色的影象進行平滑,再合併回來。它的定義如下:

src 輸入影象

dst 輸出影象

ksize 平滑視窗的大小

anchor 錨點,如果寬、高均為奇數,則point(-1,-1)代表中心點

bordertype 邊界擴充型別

因此前面均值平滑的例子,就可以簡寫成這樣:

#python 3.7.4,opencv4.1

#蔡軍生

在OpenCV裡實現均值平滑2

通過均值可以實現平滑的效果,不過這樣採用卷積的方式來計算還是不夠快,即使是使用了分離的卷積計算。由於均值的特殊性,可以針對這種卷積計算進行優化。我們知道計算均值就是把所有元素加到一起,然後再除以個數。由於影象很大,而卷積運算元很小,那麼就相當於乙個視窗不斷地滑動在影象上,並且計算這個視窗的和,那麼有...

在OpenCV裡實現高斯平滑5

基於可分離的高斯矩陣的卷積,並且計算量還少,那麼opencv也提供了相應的函式getgaussiankernel來計算高斯平滑,這個函式主要用來計算一維垂直方向的高斯卷積核,它的定義如下 retval cv.getgaussiankernel ksize,sigma ktype 其中引數ksize是...

在OpenCV裡實現高斯平滑1

在前面複習了卷積的運算,以及使用python裡的函式進行計算卷積,理解到卷積的過程,其實在影象裡就是其中一點畫素值可以與它周圍的畫素值進行加權求和,這就意味著輸出的畫素值是作為平均計算,因此該點的畫素值由這點和這點周圍的畫素來決定了。理論上怎麼樣推導,怎麼樣計算,可以先放下來,首要的問題是先來感覺一...