OpencV_Python影象濾波函式小結

YangHNU發表於2016-11-18

影象濾波函式

cv2.bilateralFilter(InputArray src,OutputArray dst, int d,double sigmaColor,double sigmaSpace,int borderType = BORDER_DEFAULT)
將雙邊濾波器應用於影象,該函式適用雙邊濾波對輸入的影象,可以減少不必要的噪音,同時保持較鋒利的邊緣。然而,與其他濾波器相比它的速度很慢。
http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html 
sigma的值:簡而言之你可以設定2個sigma值相等,如果他們取值很小(<10),那麼濾波的作用是很有限的,如果它們的值很
大(>150),那麼它們會有很給力的效果,讓圖片看上去很“卡通”
Filter size:較大的濾波器是很慢的,因此建議使用d=5作為實際應用,當然你也許會在噪聲嚴重的濾波中使用9x9濾波
d:
過濾過程中
每個畫素的鄰域的直徑
sigmacolor:顏色空間中的標準方差,引數值較大時意味著在畫素點領域內的更多的顏色會被混合在一起,結果導致較大區域內的顏色半等
sigmaspace:座標空間的標準方差,
引數的較大值意味著更遠的畫素將與相互影響,只要它們的顏色足夠相近。
borderType:詳見影象擴邊cv2.copyMakeBorder()
cv2.blur(InputArray- src,OutputArray- dst,size- ksize,point- anchor=Point(-1,-1),int borderType = BORDER_DEFAULT)

模糊影象使用歸一化的框過濾器。核心為︰K=1ksize.width*ksize.height111111111111111

blur(src, dst, ksize, anchor, borderType)與 
boxFilter(src, dst, src.type(), anchor, true, borderType).的呼叫相等
ksize:濾波核心的大小
anchor:預設值(-1,-1)即畫素點在核心中央
 
cv2.boxFilter(InputArray src,OutputArray dst,int ddepth,size ksize ,point anchor=Point(-1,-1),bool norimalize = true,int borderType = BORDER_DEFAULT)
其核心為

K=α111111111111111

α={1ksize.width*ksize.height1when \texttt{normalize=true}otherwise

 



相關文章