最近在學習影像處理經常看到很多人使用cv2.GaussianBlur(image,kernel,sigma)為影像做模糊以達到消除雜訊的功用,此函數內部的數學運算看了很久還是不懂(數學太爛了)。
根據我研究出來的是kernel size必須是奇數,kernel的用意是比如3 * 3的kernel,其影像中每3 * 3的像素中心被模糊的程度最大,kernel size或者sigma越大模糊效果越好。
關於這函數有幾個問題想請教:
Q1:關於sigma與kernel之間的關係,kernel size設越大sigma就要設越小嗎?看很多人會把sigma設為0
Q2:kernel設為(0,0),sigma非0,這樣的功效我自己測試是也會變得模糊,只是效果與kernel size非0,sigma = 0 感覺模糊效果不太一樣,這樣的目的為何呢?
Q3:看有人在調整銳利度時,使用Q2所說的方式,並將結果與原圖透過不同比例混合藉此使影像變得更加清晰,為何這樣能做到呢?
process = cv2.GaussianBlur(image,(0,0),50)
result = cv2.addWeighted(image,1.5,process,-0.5,0)
以上3個問題想請教影像處理大師,若我的理解有錯,也希望能糾正我,謝謝!