python3图像加高斯噪声
- 高斯噪声
- 图像噪声
- 高斯定理
- python3图像加高斯噪声
- 参考
高斯噪声
高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。常见的高斯噪声包括起伏噪声、宇宙噪声、热噪声和散粒噪声等等。
除常用抑制噪声的方法外,对高斯噪声的抑制方法常常采用数理统计方法。
高斯白噪声:如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。
图像噪声
图像噪声是指存在于图像数据中的不必要的或多余的干扰信息。噪声的存在严重影响了遥感图像的质量,因此在图像增强处理和分类处理之前,必须予以纠正。
图像中各种妨碍人们对其信息接受的因素即可称为图像噪声 。
噪声在理论上可以定义为“不可预测,只能用概率统计方法来认识的随机误差”。因此将图像噪声看成是多维随机过程是合适的,因而描述噪声的方法完全可以借用随机过程的描述,即用其概率分布函数和概率密度分布函数。
高斯定理
高斯定理(Gauss’ law)也称为高斯通量理论(Gauss’ flux theorem),或称作散度定理、高斯散度定理、高斯-奥斯特罗格拉德斯基公式、奥氏定理或高-奥公式(通常情况的高斯定理都是指该定理,也有其它同名定理)。
python3图像加高斯噪声
-
依赖
-
核心思想
1、将原始图像的像素值进行归一化
image = np.array(img / 255, dtype=float)
2、创建一个均值为mean,方差为sigma,呈高斯分布的图像矩阵,作为图像噪声
noise = np.random.normal(mean, sigma/255.0, image.shape)
3、将噪声和归一化后的图像进行相加得到加噪后的图像
out = image + noise
-
代码实现图像加高斯噪声
test.py:
import numpy as np
import cv2
import os
import sys
import random
def main(path):
img = cv2.imread(path)
gn_img = gauss_noise(img, 0, random.randint(15, 30))#这里加了随机值
cv2.imwrite('gauss_noise.png', gn_img)
def gauss_noise(img, mean=0, sigma=25):
image = np.array(img / 255, dtype=float) # 将原始图像的像素值进行归一化
# 创建一个均值为mean,方差为sigma,呈高斯分布的图像矩阵
noise = np.random.normal(mean, sigma/255.0, image.shape)
out = image + noise # 将噪声和原始图像进行相加得到加噪后的图像
res_img = np.clip(out, 0.0, 1.0)
res_img = np.uint8(res_img * 255.0)
return res_img
if __name__ == '__main__':
if len(sys.argv) == 2:
main(sys.argv[1])
-
用法:
python test.py img_path
-
测试输入
-
测试效果图
参考
1.百度百科