opencv 对图片滤波处理方式
本文研究 opencv 对图片的滤波方式
滤波方式
生成测试图片
1 | def zone(x, y): |
低通滤波器
1 | import scipy.stats as st |
高通滤波器
1 | # 在空间域中,可以通过从图像本身中减去低通滤波图像来获得高通滤波图像(如非锐化掩模) |
带阻滤波器
1 | # 在空间域中,可以通过将低通滤波与高通滤波图像(在不同阈值下)相加来获得带阻滤波图像 |
带通滤波器
1 | # 在空间域中,可以通过从图像本身中减去带阻滤波图像来获得带通滤波图像 |
低通滤波 - 去躁
1 | # 生成椒盐噪声:给图片添加黑白噪点,椒指的是黑色的噪点(0,0,0)盐指的是白色的噪点(255,255,255),通过设置amount来控制添加噪声的比例,值越大添加的噪声越多,图像损坏的更加严重 |
均值滤波
对各种噪声都有一定的抑制作用
1 | # 均值滤波 |
高斯滤波
对随机噪声比较好,对椒盐噪声效果不好
1 | # 高斯滤波 |
中值滤波
对椒盐噪声效果比较好
1 | # 中值滤波 |
双边滤波
1 | # 双边滤波 |
方框滤波
1 | dst_images=[] |
二维卷积滤波
1 | # 二维卷积滤波 |
fastNlMeansDenoisingColored
非局部去噪,速度很慢,可以调参的去噪方法,去噪针对彩色图
1 | # fastNlMeansDenoisingColored |
fastNlMeansDenoising
非局部去噪,速度很慢,可以调参的去噪方法
1 | # fastNlMeansDenoising |
高通滤波 - 提取边缘
1 | img_path='../demo.png' |
1 | # 二值化 |
拉普拉斯算子
1 | # 使用Laplace函数 |
Sobel 算子
1 | grad_x=cv2.Sobel(binary,-1,1,0) |
Canny 算子
1 | dst=cv2.Canny(binary,100,150) |