高斯噪声:噪声的概率密度分布是正态分布

高斯噪声用途:去除高斯噪声

如果原图是彩色图片,可以对RGB三个通道分别做高斯平滑。

cv2.GaussianBlur(src,ksize,sigmaX,sigmay,borderType)
  • src: 输入图像
  • ksize:高斯卷积核的大小,注意 : 卷积核的宽度和高度都应为奇数,且可以不同
  • sigmaX: 水平方向的标准差
  • sigmaY: 垂直方向的标准差,默认值为0,表示与sigmaX相同
  • borderType:填充边界类型
import cv2 as cv
from matplotlib import pyplot as plt

# 1 图像读取
img = cv.imread('./1.png') # 读取带有高斯噪声的图片

# 2 高斯滤波
blur = cv.GaussianBlur(img, (5, 5), 1)

cv.imshow("img", blur)
cv.waitKey(0)

# 3 图像显示
plt.figure(figsize=(10, 8), dpi=100)
plt.subplot(121),
plt.imshow(img[:, :, ::-1]),
plt.title('原图')
plt.xticks([]),
plt.yticks([])
plt.subplot(122),
plt.imshow(blur[:, :, ::-1]),
plt.title('高斯滤波后结果')
plt.xticks([]),
plt.yticks([])
plt.show()

高斯噪声图
OpenCV 高斯滤波_标准差

高斯滤波后
OpenCV 高斯滤波_卷积核_02

Matlab实现给图像添加高斯噪声

% 给图像加噪声 
% type可有五种,分别为’gaussian’(高斯白噪声),’localvar’
% (与图象灰度值有关的零均值高斯白噪声),’poisson’(泊松噪声),
% ‘salt & pepper’(椒盐噪声)和’speckle’(斑点噪声);
clear all;
close all;
F=imread('1.png');
subplot(121);imshow(F);title('原图');
F = imnoise(F, 'gaussian', 0.1); %给图像加入噪声 0.1为可以修改的参数
w = subplot(122);imshow(F);title('加噪声之后');