函数原型
void blur( InputArray src, OutputArray dst, Size ksize, Point anchor = Point(-1,-1), int borderType = BORDER_DEFAULT );
参数说明
InputArray类型的src,输入图像,如Mat类型。
OutputArray类型的dst,输出图像。
Size类型的ksize,内核的大小,比如3*3,5*5。
Point类型的anchor,锚点,如果是点坐标为负值,则取核的中心为锚点。
int类型的borderType,推断图像边缘像素的边界模式。
测试代码
#include<iostream> #include<opencv2/opencv.hpp> #include<ctime> using namespace std; using namespace cv; int main(void) { cv::Mat test = imread("long.jpg"); cv::Mat result; cv::blur(test, result, Size(7,7)); imshow("original", test); imshow("result", result); waitKey(0); system("pause"); return 0; }
测试效果
图1 对比图
图2 原图细节
图3 均值滤波后细节
均值滤波是最简单的一种滤波操作,输出图像的每个像素点,都是其内核窗口中像素的均值,达到了一定的模糊效果~
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!