python實現高斯濾波


一,定義

核是:3 *3     均值濾波

 二,高斯函數

 Y方向的方差與X方向的一致。處理后圖像看起來更模糊(濾波明顯)的話,核要更大。

(三)代碼實現

 (四)核計算

 (五)圖像產生高斯噪聲循環代碼實現

 1 def clamp(pv):  #使我們的隨機值在0-255之間
 2     if pv > 255:
 3         return 255
 4     if pv < 0:
 5         return 0
 6     return pv
 7 import cv2 as cv
 8 import numpy as np
 9 
10 def gaussian_noise(image):  #對圖像加上高斯噪聲
11     h,w,c = image.shape
12     for row in range(h):  #十分耗時
13         for col in range(w):
14             s = np.random.normal(0,20,3)  #產生3個隨機值,符合正態分布,第一個參數是概率分布的均值,對應分布中心,,第二個是概率分布的標准差,越小越瘦高,第三個是輸出的值個數
15             b = image[row,col,0] #blue
16             g = image[row,col,1] #green
17             r = image[row,col,2] #red
18             image[row,col,0] = clamp(b+s[0])
19             image[row,col,1] = clamp(g+s[1])
20             image[row,col,2] = clamp(r+s[2])
21 
22     cv.imshow("noise image",image)
23 
24 
25 src = cv.imread("./1.png")  #讀取圖片
26 cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)    #創建GUI窗口,形式為自適應
27 cv.imshow("input image",src)    #通過名字將圖像
28 gaussian_noise(src)
29 
30 cv.waitKey(0)   #等待用戶操作,里面等待參數是毫秒,我們填寫0,代表是永遠,等待用戶操作
31 cv.destroyAllWindows()  #銷毀所有窗口

 (六)使用高斯模糊處理高斯噪聲(發現高斯噪聲的影響不大,高斯模糊對其有抑制作用)

1 gaussian_noise(src) #修改原圖為高斯噪聲圖
2 dst = cv.GaussianBlur(src,(5,5),15)
3 cv.imshow("GaussianBlur",dst)

 參考:

https://www.cnblogs.com/ssyfj/p/9268492.html


免責聲明!

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



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