标签:noise image 噪声 案例 np 视觉 cv out
图像的噪声产生与去噪
一、理论分析
图像在生成时,受到环境、设备本身、光线等因素会导致图片产生噪声,这些噪声过于随机,处理起来十分复杂。处于学习的目的,我们首先学习一些简单的噪声与去噪,比如高斯噪声,椒盐噪声等。
二、代码分析
2.1 高斯噪声的产生与去噪
高斯噪声主要根据高斯分布(也就是正态分布)的边缘值,被认为是噪声。在高斯噪声的产生中,对图像添加给定高斯分布的边缘值,这样就对图像添加了高斯噪声,去噪的方法也很简单,对每个核去除边缘分布的噪声。
from cv2 import cv2 as cv
import numpy as np
def gauss_noise(image,mean=0,var=0.0001):
image = np.array(image/255,np.float32)
noise = np.random.normal(mean,var**0.5,image.shape)
out = image + noise
if out.min() < 0:
low_clip = -1
else:
low_clip = 0
out = np.clip(out,low_clip,1.0)
out = np.uint8(out*255)
return out
img = cv.imread('./CV-Pictures/036.jpg')
gauss_noise = gauss_noise(img,0.0,0.00002)
dst = cv.GaussianBlur(gauss_noise,(9,9),0,0)
pic = np.hstack([img,dst])
cv.imshow("picture",pic)
cv.waitKey(0)
cv.destroyAllWindows()
运行结果如下
2.2 椒盐噪声的产生与去噪
椒盐噪声,个人理解,顾名思义,胡椒–>黑色,盐–>白。加入0和255像素的噪声,去噪的方法也很简单,应用中值模糊去噪方法。去除最小值和最大值,从而去除椒盐噪声,但是我们应该认识到,当模糊处理的核很大时,图像会变得很模糊,所以一般我们取一个权衡值。在去除噪声的前提下,争取图像变得清晰,这就导致核不能太大,也不能太小。
from cv2 import cv2 as cv
import numpy as np
import random
def salt_pepper_noise(image,radio):
out = np.zeros(image.shape,np.uint8)
threshold = 1 - radio
for i in range(image.shape[0]):
for j in range(image.shape[1]):
rdn = np.random.random()
#rdn = random.random()
if rdn < radio:
out[i][j] = 0
elif rdn > threshold:
out[i][j] = 255
else:
out[i][j] = image[i][j]
return out
img = cv.imread('./CV-Pictures/010.jpg')
out_sp_noise = salt_pepper_noise(img,0.2)
dst_median = cv.medianBlur(out_sp_noise,5)
dst_blur = cv.blur(out_sp_noise,(9,9))
Gaiss_dst = cv.GaussianBlur(out_sp_noise,(9,9),2,2)
pic = np.hstack([out_sp_noise,dst_median,dst_blur,Gaiss_dst])
cv.imshow('out_sp_noise',pic)
cv.waitKey(0)
cv.destroyAllWindows()
运行代码结果如下图所示,从左到右,依次是椒盐噪声图片,中值模糊,均值模糊,高斯模糊。可以看到中值模糊效果最好。
标签:noise,image,噪声,案例,np,视觉,cv,out 来源: https://blog.csdn.net/qq_26274961/article/details/121621414
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。