平滑处理 - 均值处理(模糊处理)
相关函数:
C++: void blur(InputArray src, OutputArraydst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT )
- src – 输入图片,可以使是任意通道数,该函数对通道是独立处理的,但是深度只能是CV_8U, CV_16U, CV_16S, CV_32F or CV_64F。
- dst – 输出图片,和输入图片相同大小和类型。
- ksize – 模糊内核大小,一般这样写Size( w,h )来表示内核的大小( 其中,w 为像素宽度, h为像素高度)。Size(3,3)就表示3x3的核大小,Size(5,5)就表示5x5的核大小。
- anchor – 锚点,默认值是(-1,-1),也就是锚点在内核的中心。
- borderType – 用于判断图像边界的模式。有默认值BORDER_DEFAULT,我们一般不去管它。
相关实例:
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include"opencv2/imgproc/imgproc.hpp"
#include <stdio.h>
using namespace cv;
/*
均值处理:void blur(InputArray src, OutputArraydst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT );
src – 输入图片,可以使是任意通道数,该函数对通道是独立处理的,但是深度只能是CV_8U, CV_16U, CV_16S, CV_32F or CV_64F。
dst – 输出图片,和输入图片相同大小和类型。
ksize – 模糊内核大小,一般这样写Size(w, h)来表示内核的大小(其中,w 为像素宽度, h为像素高度)。Size(3, 3)就表示3x3的核大小,Size(5, 5)就表示5x5的核大小。
anchor – 锚点,默认值是(-1, -1),也就是锚点在内核的中心。
borderType – 用于判断图像边界的模式。有默认值BORDER_DEFAULT,我们一般不去管它。
**/
int main() {
cvNamedWindow("均值滤波原图", 0);
cvNamedWindow("均值滤波效果图",0);
Mat imageSrc = imread("game.jpg");
imshow("均值滤波原图", imageSrc);
Mat imageChange;
//平滑处理
blur(imageSrc, imageChange, Size(7, 7));
//显示效果图
imshow("均值滤波效果图", imageChange);
waitKey(6000 * 100);
}
效果图: