python+opencv濾波操作


1、均值濾波

直接用元素全為1的核與圖像卷積求均值得到中心像素的修改值。

#blur平均值去噪,均值濾波
#簡單的平均卷積操作
img=cv2.imread("noise.jpg")
blur
= cv2.blur(img,(3,3)) cv2.imshow("original",img) cv2.imshow("changed",blur) cv2.waitKey(0) cv2.destroyAllWindows()

將核大小改為(1,50)和(50,1)的到下圖

 

2、方框濾波(比均值濾波多一個參數)

#方框濾波
#normalize為True時與blur相同
#normalize為Flase是可能發生越界
box=cv2.boxFilter(img,-1,(3,3),normalize=True)
cv2.imshow("original",img)
cv2.imshow("changed",box)
cv2.waitKey(0)
cv2.destroyAllWindows()

3、高斯濾波

#高斯濾波
#構造權重矩陣
aussian = cv2.GaussianBlur(img,(21,21),1)

cv2.imshow("original",img)
cv2.imshow("aussian",aussian)
cv2.waitKey(0)
cv2.destroyAllWindows()

越靠近中心點的權重越大,核的大小必須是奇數,否則會報錯。

將方框濾波和高斯濾波放一起對比,將核大小調大一點(21,21)

 

 4、中值濾波

#中值濾波
median = cv2.medianBlur(img,5)

cv2.imshow("original",img)
cv2.imshow("median",median)
cv2.waitKey(0)
cv2.destroyAllWindows()

輸入參數為圖片,及核大小,行和列相等,且為奇數。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM