zl程序教程

您现在的位置是:首页 >  后端

当前栏目

在OpenCV里实现向图像添加高斯噪声

Opencv 实现 添加 图像 高斯 噪声
2023-09-14 09:10:32 时间

在进行平滑滤波中,经常要测试滤波的算法是否有作用,比如模拟现实中出现一些高斯噪声,要怎么样对图像进行处理,才能达到这个目的呢?下面就来解决这个问题,这里使用np.random.normal函数来生成高斯噪声,然后再添加到归一化的图像里,最后再转换为255的灰度值进行显示。

这个例子的代码如下:

#python 3.7.4,opencv4.1
#蔡军生 https://blog.csdn.net/caimouse/article/details/51749579
#
import numpy as np
import cv2
from matplotlib import pyplot as plt

def mat2gray(img):
    A = np.double(img)
    out = np.zeros(A.shape, np.double)
    normalized = cv2.normalize(A, out, 1.0, 0.0, cv2.NORM_MINMAX)
    return out

#添加噪声到图像
def random_noise(image, mode='gaussian', seed=None, clip=True, **kwargs):
    image = mat2gray(image)
    
    mode = mode.lower()
    if image.min() < 0:
        low_clip = -1
    else:
        low_clip = 0
    if seed is not None:
        np.random.seed(seed=seed)
        
    if mode =&