使用Python,OpenCV进行平滑和模糊
这篇博客将介绍如何使用OpenCV对图片进行平滑和模糊操作。
具体包括:
- 简单平均模糊(cv2.blur)
- 加权高斯模糊(cv2.GaussianBlur)
- 中值滤波(cv2.medianBlur)
- 双边滤波(cv2.bilateralFilter)
平滑和模糊是计算机视觉和图像处理中最常见的预处理步骤之一。
模糊是当相机拍摄的照片失去焦点时发生的事情。图像中更清晰的区域会丢失其细节。模糊意味着图像中的每个像素与其周围的像素强度混合。邻居中的一个“混合”像素成为模糊像素。
平滑能够减少高频内容,帮助忽略图像中较小的细节,而留下更多图像结果的内容。首先对图像平滑或模糊后,会使得阈值化、边缘检测能取得更好的效果。
1. 效果图
简单均值模糊——原始图 VS 3 * 3 VS 9 * 9 VS 15 * 15 效果图如下:
M * N(均为奇数)的内核取平均值作为中心像素的值,可以看到随着内核的增加,图像越来越模糊~
高斯模糊——原始图 VS 3 * 3 VS 9 * 9 VS 15 * 15 效果图如下:
M*N(均为奇数)的内核,不是简单的取平均值,而是取加权平均值。可以看到随着内核的增大,图像也会变得模糊,但