一,定義
核是: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