OpenCV(python)一键入门--第7篇(图像噪声与降噪)
1:图像噪声
图像噪声产生的原因会有很多种,有可能是设备为题,或者数字信号在传输过程中受到干扰。常见的噪声分以下几种:
1):均匀分布噪声
因为某一些规律性的错误导致
2):椒盐噪声
是一种随机在图像中出现的稀疏像素点
3):高斯噪声
一般在数码相机的图像采集过程中产生
import cv2 as cv
import numpy as np
#图像噪声
def add_salt_pepper_noise(image):
h, w = image.shape[:2]
nums = 10000
rows = np.random.randint(0, h, nums, dtype=np.int)
cols = np.random.randint(0, w, nums, dtype=np.int)
for i in range(nums):
if i % 2 == 1:
image[rows[i], cols[i]] = (255, 255, 255)
else:
image[rows[i], cols[i]] = (0, 0, 0)
cv.imshow("salt pepper noise", copy)
return image
def gaussian_noise(image):
noise = np.zeros(image.shape, image.dtype)
m = (15, 15, 15)
s = (30, 30, 30)
cv.randn(noise, m, s)
dst = cv.add(image, noise)
cv.imshow("gaussian noise", dst)
return dst
src = cv.imread("ma.jpg")
h, w = src.shape[:2]
gaussian_noise(src)
add_salt_pepper_noise(src)
cv.waitKey(0)
cv.destroyAllWindows()
原图为:
椒盐噪声:
高斯噪声:
2:图像去噪
该算法使用自然图像中普遍存在的冗余信息来去噪声。与常用的双线性滤波、中值滤波等利用图像局部信息来滤波不同的是,它利用了整幅图像来进行去噪,以图像块为单位在图像中寻找相似区域,再对这些区域求平均,能够比较好地去掉图像中存在的高斯噪声。与我们以前学习的平滑技术相比这种算法要消耗更多的时间,但是结果很好。对于彩色图像,要先转换到 CIELAB 颜色空间,然后对 L 和 AB 成分分别去噪。
在上述代码中加入如下语句即可
result = cv.fastNlMeansDenoisingColored(src, None, 15, 15, 10, 30)
cv.imshow("result", result)
其效果如下:
函数原型为:
fastNlMeansDenoisingColored( InputArray src, OutputArray dst,
float h, float hColor,
int templateWindowSize , int searchWindowSize)
共同的参数有如下
• h : 决定过滤器强度。h 值高可以很好的去除噪声,但也会把图像的细节抹去。
• hForColorComponents : 与 h 相同,但使用与彩色图像。
• templateWindowSize : 奇数。
• searchWindowSize : 奇数。
去噪函数补充:
#非局部平均去噪
#cv2.fastNlMeansDenoising() - 使用单个灰度图像
#cv2.fastNlMeansDenoisingColored() - 使用彩色图像。
#cv2.fastNlMeansDenoisingMulti() - 用于在短时间内捕获的图像序列(灰度图像)
#cv2.fastNlMeansDenoisingColoredMulti() - 与上面相同,但用于彩色图像。
当然,也可以使用如下代码进行降噪:
result1 = cv.blur(src, (5, 5)) #图像均值
cv.imshow("result-1", result1)
result2 = cv.GaussianBlur(src, (5, 5), 0) #高斯模糊
cv.imshow("result-2", result2)
result3 = cv.medianBlur(src, 5) #中值滤波
cv.imshow("result-3", result3)
关于图像模糊,可以参考OpenCV(python)第六篇(图像卷积与模糊):https://bbs.huaweicloud.com/blogs/285595
参考文章:https://blog.csdn.net/qq_38410428/article/details/93046099
- 点赞
- 收藏
- 关注作者
评论(0)