通过在小波域高频处,进行维纳滤波,来降低噪声对图像的影响。(假设噪声分布呈独立同分布)
import os
import cv2
from matplotlib import pyplot as plt
import numpy as np
import pywt
# print(pywt.families())
# ['haar', 'db', 'sym', 'coif', 'bior', 'rbio', 'dmey', 'gaus', 'mexh', 'morl', 'cgau', 'shan', 'fbsp', 'cmor']
def guass_noise(pic, SNR = 1):
#SNR为信噪比
pic = np.array(pic, dtype = float)
SNR = 10 ** (SNR / 10)
row, col = np.shape(pic)
pic_power = np.sum(pic * pic) / (row * col)
noise_power = pic_power / SNR
noise = np.random.randn(row, col) * np.sqrt(noise_power)
pic = (noise + pic)
pic = np.where(pic <= 0, 0, pic)
pic = np.where(pic >255, 255, pic)
return np.uint8(pic)
def SNF_calcu(pic, pic_):
#