图像模糊是blur这个英文单词,主要利用均值滤波技术。均值滤波也叫做平滑滤波,是一种常见的图像平滑滤波方法。其基本思想是用一个滑动窗口在图像上进行平移,对每个窗口内的像素值求平均,然后将该平均值作为当前像素点的输出值。这样,就可以消除噪声并减小图像的细节。
以下是C++实现均值滤波的示例
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main() {
Mat srcImage = imread("3.png");
imshow("原图", srcImage);
Mat dstImage;
blur(srcImage, dstImage, Size(10,10),cv::Point(-1,-1),4);
imshow("均值滤波", dstImage);
waitKey(0);
return 0;
}
效果如下,就好像把图像模糊一样
blur函数的参数主要是原图像、目标图像、原子核大小、锚点位置、边缘填充方式。
1 锚点位置是啥?边缘填充方式干嘛的?
锚点位置(anchor):锚点是指滤波核的参考点,用来确定核在图像上进行卷积操作时的对齐方式。在均值滤波中,通常将锚点设置为核的中心点。在 OpenCV 中,可以通过参数 cv::Point(-1, -1) 来表示使用核的中心作为锚点。
边缘填充方式(borderType):在进行图像卷积时,当核在图像边缘区域进行操作时,需要对超出图像边界的像素进行填充。边缘填充方式就是用来指定这种填充的方式。常见的边缘填充方式包括:
BORDER_CONSTANT:用常数填充边界。
BORDER_REPLICATE:复制最边缘像素。
BORDER_REFLECT:边界像素的镜像填充。
BORDER_WRAP:用另一侧的边界像素填充。
2 图像模糊还有别的技术可以实现吗
比如高斯模糊、中值滤波、双边滤波、运动模糊
3 图像模糊一般用来干嘛
主要用来降噪、美化、保护
4 图像模糊的原理是啥
参考:https://zhuanlan.zhihu.com/p/355260752
https://blog.csdn.net/weixin_51571728/article/details/121455266
5 我们如果不用opencv的均值滤波自己如何写一个均值滤波
参考:https://zhuanlan.zhihu.com/p/355260752
https://blog.csdn.net/weixin_51571728/article/details/121455266