高斯噪声
高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。常见的高斯噪声包括起伏噪声、宇宙噪声、热噪声和散粒噪声等等。
除常用抑制噪声的方法外,对高斯噪声的抑制方法常常采用数理统计方法。
高斯白噪声:如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。
图像噪声
图像噪声是指存在于图像数据中的不必要的或多余的干扰信息。噪声的存在严重影响了遥感图像的质量,因此在图像增强处理和分类处理之前,必须予以纠正。
图像中各种妨碍人们对其信息接受的因素即可称为图像噪声 。
噪声在理论上可以定义为“不可预测,只能用概率统计方法来认识的随机误差”。因此将图像噪声看成是多维随机过程是合适的,因而描述噪声的方法完全可以借用随机过程的描述,即用其概率分布函数和概率密度分布函数。
高斯定理
高斯定理(Gauss’ law)也称为高斯通量理论(Gauss’ flux theorem),或称作散度定理、高斯散度定理、高斯-奥斯特罗格拉德斯基公式、奥氏定理或高-奥公式(通常情况的高斯定理都是指该定理,也有其它同名定理)。
python3图像加高斯噪声
-
依赖
- python 3.x
- opencv2
- numpy
-
核心思想
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
-
测试输入
-
测试效果图
文章来源:https://www.toymoban.com/news/detail-476514.html
参考
1.百度百科文章来源地址https://www.toymoban.com/news/detail-476514.html
到了这里,关于python3图像加高斯噪声的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!