1. 程式人生 > 其它 >OpenCV中高斯噪音的生成和高斯濾波的使用

OpenCV中高斯噪音的生成和高斯濾波的使用

技術標籤:opencvpython計算機視覺

OpenCV中高斯噪音的生成和高斯濾波的使用

關鍵是高斯濾波函式的引數意義。
高斯濾波的數學理論基礎是二維正態分佈函式(又稱高斯函式,所以得名)

程式碼實現:

import cv2
import numpy as np
#高斯噪音的生成和高斯濾波的使用
img = cv2.imread('cat.jpg')
cv2.imshow('img',img)
h,w,ch = img.shape

def clamp(num): #對隨機數進行操作
    if num>255:
        return 255
    elif num<
0: return 0 else: return num #生成高斯噪音 for row in range(h): for col in range(w): s = np.random.normal(0,20,3) #生成3個隨機引數,0為均值,20為標準差 b = img[row,col,0] g = img[row,col,1] r = img[row,col,2] img[row, col, 0] = b + clamp(s[0]) img[row, col,
1] = g + clamp(s[1]) img[row, col, 2] = r + clamp(s[2]) cv2.imshow('GaussianNoise',img) #高斯濾波 # 引數解釋:img為處理物件(5,5)為高斯核心大小,0為高斯核函式(就是二維正態分佈函式)x方向的標準差,1為高斯核函式y方向的標準差 img = cv2.GaussianBlur(img,(5,5),0,1) cv2.imshow('GaussianBlur',img) cv2.waitKey()

執行結果:
在這裡插入圖片描述