在做噪声添加实验时,需要给图像添加Poisson噪声,下文提供添加泊松噪声的代码:
在RAW格式图像中,经常出现高斯噪声和散粒噪声。高斯噪声与光线的强弱无关,也就是说无论图像的像素值是多少,噪声的平均水平不变。另外一种是散粒噪声,其符合泊松分布,因此也叫泊松噪声,泊松噪声的强度会随着光线变强而变大,也就是说图像的像素值越大,泊松噪声出现的频率也越大。泊松噪声产生原理:光源发出的光子照射在CMOS上,从而形成一个可见的光点。CMOS在有些时候可能无法接收所有的光子,或者有时候接收到的光子特别多,这就导致灰度值会产生波动,这时候就会发生泊松噪声。
为了模拟工业相机采集图像时产生的泊松噪声,对图像数据集进行加噪处理,处理过程如下:
import os
import numpy as np
import cv2
path = './.../.../'
img_name = 'xx.jpg'
image = cv2.imread(os.path.join(path,img_name)) # 读取图像 path为存储图像路径,img_name为图像文件名
# 添加噪声
noise_type = np.random.poisson(lam=0.03,size=(2177,2233,1)).astype(dtype='uint8') # lam>=0 值越小,噪声频率就越少,size为图像尺寸
noise_image = noise_type+image # 将原图与噪声叠加
cv2.imshow('添加噪声后的图像',noise_image)
cv2.waitKey(0)
cv2.destroyWindow()