一、图像滤波
平滑与模糊即失去焦点,致使看不到图像的细节,也就是说像素点与周围像素点混合了,在边缘检测方面很有用处,常用的平滑方法有均值、高斯、中值和双边。实例如下所示:
import cv2 as cv
import numpy as np
test_image = cv.imread(r'E:\kaggleData\computer_version_Data\4.jpg')
cv.imshow('test_image', test_image)
"""
cv2.blur(img,ksize) 均值滤波
img:原图像
ksize:核大小
原理:它只取内核区域下所有像素的平均值并替换中心元素。
特征:核中区域贡献率相同。
作用:对于椒盐噪声的滤除效果比较好
"""
blurred = np.hstack([
cv.blur(test_image, (3, 3)),
cv.blur(test_image, (5, 5)),
cv.blur(test_image, (7, 7))
])
cv.imshow("Averaged", blurred)
"""
cv2.GuassianBlur(img, ksize,sigmaX,sigmaY) 高斯滤波
说明:sigmaX,sigmaY分别表示X,Y方向的标准偏差。如果仅指定了sigmaX,则sigmaY与sigmaX相同.如果两者都为零,
则根据内核大小计算它们。
特征:核中区域贡献率与距离区域中心成正比,权重与高斯分布相关。
作用:高斯模糊在从图像中去除高斯噪声方面非常有。
第三个参数0表示自动计算核大小
"""
blurred = np.hstack([
cv.GaussianBlur(test_image, (3, 3), 0),
cv.GaussianBlur(test_image, (5, 5), 0),
cv.GaussianBlur(test_image, (7, 7), 0)
])
cv.imshow("Gaussian", blurred)
"""
cv2.medianBlur(img, k) 中值滤波
说明:imgs为原图像,k为方框的尺寸,相当于将方框内的个值进行排序,取中值作为当前值。
特征:中心点的像素被核中中位数的像素值代替。
作用:对于椒盐噪声有效。
"""
blurred = np.hstack([
cv.medianBlur(test_image, 3),
cv.medianBlur(test_image, 5),
cv.medianBlur(test_image, 7)
])
cv.imshow("Median", blurred)
"""
双边滤波:
cv2.bilateralFilter(img,d, sigmaColor, sigmaSpace)双边滤波
说明:d为邻域直径,sigmaColor为空间高斯函数标准差,参数越大,临近像素将会在越远的地方越小。
sigmaSpace灰度值相似性高斯函数标准差,参数越大,那些颜色足够相近

本文详细介绍了图像处理中的滤波技术,包括均值、高斯、中值和双边滤波,并展示了它们在图像平滑与边缘保持上的应用。接着,文章探讨了Canny边缘检测算法,解释了其工作原理和参数设置。最后,通过OpenCV实现人脸和眼睛的检测,使用预训练的XML模型定位并标记了人脸和眼睛。
最低0.47元/天 解锁文章
2307

被折叠的 条评论
为什么被折叠?



