函数:
void blur( InputArray src, OutputArray dst, Size ksize, Point anchor = Point(-1,-1), int borderType = BORDER_DEFAULT );
均值滤波函数,目标图像中每个值都是源图像中对应位置一个窗口中像素的平均值,窗口大小ksize。
参数:
Size ksize
滤波器窗口大小
代码:
void test_blur(Mat & srcimg){
printf("srcimg w=%d,h=%d\n",srcimg.cols,srcimg.rows);
imshow("1 srcimg",srcimg);
int size=100;
Mat result_img;
Size ks(3,3);
cv::blur(srcimg,result_img,ks, Point(-1,-1),BORDER_DEFAULT);
imshow("3x3 result_img",result_img);
Size ks2(5,5);
cv::blur(srcimg,result_img,ks2, Point(-1,-1),BORDER_DEFAULT);
imshow("5x5 result_img",result_img);
Size ks3(9,9);
cv::blur(srcimg,result_img,ks3, Point(-1,-1),BORDER_DEFAULT);
imshow("9x9 result_img",result_img);
while(waitKey(30) ==255);
}
int main(){
Mat srcimg=imread("test_plane.png");
test_blur(srcimg);
return 0;
}
结果:
总结:
ksize滤波窗口越大,模糊力度越大,均值滤波。
尝试更换borderType参数,没看出结果差异。