首页 > 编程知识 正文

数字图像处理中的噪声是什么,cv算法百度百科

时间:2023-05-03 16:01:27 阅读:150947 作者:3534

图像噪声的作用:在训练数据集较少的情况下,利用各种噪声模糊一些图像作为训练集,可以提高模型的鲁棒性信噪比(SNR )信号与噪声的比率,信噪比越小一般越好图像传感器在拍摄时不够明亮,亮度不均匀,会产生电路元器件本身的噪声,影响图像传感器的长期工作,温度过高的公式: pout=pinxmeanssigma*g(d ) d为线性随机数,g(d )为小随机数输出参数sigma和XMeans以系统时间为种子产生伪随机数,g ) d带入伪随机数而得到的小的蜗牛随机数根据从输入像素计算出的输出像素重新缩放像素值,([0-255] ) )实现周期全像素输出图像编码的细节实现importnumpyasnpimportcv2fromnumpyimportshapeimportrandom # perce tage :的信噪比。 这里信噪比是噪声点数/信息点总数defgaussiannoise(SRC,means, perce tage (: noise img=srcnoisenum=int (perce tage * src.shape [0] * src.shape [1] )信噪比*长度*宽度forIinrange 由于randY不生成和处理随机整数#矮小定制噪声图像的边缘,所以随机生成的列# random.randint (0src.shape [0]-1 src.shape[1]-1 ) #添加矮小蜗牛噪音NoiseImg[randX,randy]=noiseimg )添加sigma(#灰度小于0或大于255时,强制缩放randY] 0: NoiseImg[randX,randY]=0 elif NoiseImg[randX,Randy ] 255333 Randy ]=255 returnnoiseimgimg=cv2.im read 4、0.5 ) img=cv2.im roise cv2.color _ bgr2gray (# cv2.im write (lenna _ Gaussian noise.png (,img1) cv2.imshow img1) cv2.waitkey(0) # skimg1版本' ' def random _ noise ' image,mode='gaussian ',seed=None,clip=True, **kwargs ) :功能:浮点图像加上各种随机噪声参数(image )输入图像(转换为浮点型)、ndarray型mode )选项、str型、 添加的噪声类型gaussian )矮小蜗牛噪声localvar )表示矮小蜗牛分布的附加性的poisson :泊松噪声salt :盐噪声,像素值随机1pepper :胡椒噪声,像素值为了避免伪随机clip,在生成由于矩阵的值中是否包含符号sp :椒盐噪声:均匀噪声(均值方差)、out=imagen*image而引起的噪声之前,设定随机种子如果是选项、bool类型和True,请添加平均值、泊松和小型自定杂色,然后将图像数据裁剪到适当的区域。 如果谁为False,则输出矩阵的值为[-1, 1]mean :可选,float型,可能超过矮小蜗牛噪声和平均噪声中的mean参数,默认值=0var :可选,float型,矮小蜗牛噪声和平均噪声中的方差,默认值在localvar中,amount :可选,float型为椒盐噪声所占的比例,默认值=0.05salt_vs_pepper :可选,float型,椒盐噪声的椒盐比率为1 )之间的间隔取决于代码数目是否是“' fromskimageimportutilimg=cv2.im read (timg.jpg ' ) noise_GS_img=util.randdimg2.imshow("source", img)cv2.imshow("npise",noise_gs_img)#cv.imwrite('lenna_noise.png',noise_gs_img)cv2.waitKey(0)cv2.destroyAllWindows() 椒盐噪声 椒盐噪声又称脉冲噪声,它是一种随机出现的白点或黑点椒盐噪声 = 椒噪声 + 盐噪声,0(椒),255(盐)处理顺序: 指定信噪比 SNR , 其取值范围在[0, 1]之间计算总像素数目 SP, 得到要加噪的像素数目 NP = SP * (1-SNR)随机获取要加噪的每个像素位置P(i, j)指定像素值为255或者0重复3, 4两个步骤完成所有NP个像素的加噪 代码实现 import cv2from skimage import utilimg = cv2.imread("timg.jpg")noise_gs_img=util.random_noise(img,mode='s&p',amount=0.1)cv2.imshow("source", img)cv2.imshow("npise",noise_gs_img)#cv.imwrite('lenna_noise.png',noise_gs_img)cv2.waitKey(0)cv2.destroyAllWindows() 其他噪声 泊松噪声伽马噪声 图像滤波 图像滤波的作用: 去除噪声为图像识别抽取出图像特征 滤波要求: 不能损坏图像轮廓及边缘图像视觉效果应当更好 常见滤波 均值滤波 用途: 消除图像尖锐噪声实现图像平滑模糊图像 优点:算法简单,计算速度快缺点:降低噪声的同时使图像产生模糊,特别是景物的边缘和细节部分(如果使用Kmeas聚类找到对应的噪声点,然后再使用均值滤波进行平均,就会比较好的抑制又有点被平均的情况)代码实现 # OpenCV版本3.4.2# img表示输入的图片, (3, 3) 表示进行均值滤波的方框大小cv2.blur(img, (3, 3)) # 进行均值滤波# normalize=True时,与均值滤波结果相同, normalize=False,表示对加和后的结果不进行平均操作,大于255的使用255表示cv2.boxfilter(img, -1, (3, 3), normalize=True) # 表示进行方框滤波# 1 代表sigmaX X方向的sigmaX矮小的蜗牛核标准差cv2.GaussianBlur(img, (3, 3), 1) 表示进行矮小的蜗牛滤波 中值滤波 用途:消除椒盐噪声优点:抑制效果很好,画面的清晰度基本保持缺点:对矮小的蜗牛噪声的抑制效果不是很好代码实现 import cv2from skimage import utilimg = cv2.imread("gdg.jpg")noise_gs_img = util.random_noise(img,mode='s&p')# 正则化noise_gs_img = cv2.normalize(noise_gs_img, None, 0, 255, cv2.NORM_MINMAX, cv2.CV_8U)# 类型转换# noise_gs_img = np.uint8(noise_gs_img*255)# 中值滤波median = cv2.medianBlur(noise_gs_img,3)cv2.imshow("source", img)cv2.imshow("npise",noise_gs_img)cv2.imshow("blur",median)cv2.imwrite('lenna_noise.png',noise_gs_img)cv2.waitKey(0)cv2.destroyAllWindows() 处理结果 最大最小值滤波 将中心像素值与最小和最大像素值比较, 如果比最小值小, 则替换中心像素为最小值,如果中心像素比最大值大, 则替换中心像素为最大值用途:也可以用来消除椒盐噪声缺点:抑制效果比较普通

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。