标签:orm 存储 大小 roc 显示 enc 回调函数 滚动条 bool
参考网站:http://blog.csdn.net/poem_qianmo/article/details/22745559
1、boxFilter函数——方框滤波
void boxFilter(InputArray src, //输入图像
OutputArray dst, //输出图像
int ddepth, //输出图像的深度,-1表示使用原图深度,即 src.depth()
Size ksize, //内核的大小,Size(w,h)
Point anchor=Point(-1,-1), //锚点
boolnormalize=true, //一个标识符,表示内核是否被其区域归一化(narmalized)了
int borderType=BORDER_DEFAULT ) //一般不管
1 //载入原图 2 Mat image=imread("2.jpg"); 3 //进行均值滤波操作 4 Mat out; 5 boxFilter(image, out, -1,Size(5, 5)); //一般就前面四个参数
2、blur函数——均值滤波
void blur(InputArray src, //输入图像
OutputArraydst, //输出图像
Size ksize, //内核大小
Point anchor=Point(-1,-1), //锚点
int borderType=BORDER_DEFAULT ) //一般不管
1 //载入原图 2 Mat image=imread("1.jpg"); 3 //进行均值滤波操作 4 Mat out; 5 blur(image, out, Size(7, 7)); //一般就用前面三个参数
3、GaussianBlur函数——高斯滤波
void GaussianBlur(InputArray src, //输入图像
OutputArray dst, //输出图像
Size ksize, //内核的大小
double sigmaX, //高斯核函数在X方向的标准偏差
double sigmaY=0, //高斯核函数在Y方向的标准偏差
intborderType=BORDER_DEFAULT )
1 //载入原图 2 Mat image=imread("1.jpg"); 3 //进行滤波操作 4 Mat out; 5 GaussianBlur( image, out, Size( 5, 5 ), 0, 0 ); //一般就用前五个参数
4、综合实践:
1 //******************************【程序说明】***************************** 2 // 程序名称:线性滤波(方框滤波、均值滤波、高斯滤波) 3 // opencv版本:2.4.13 4 // 日期:2017/9/20 5 //********************************************************************** 6 7 8 //******************************【头文件包含部分】***************************** 9 // 描述:包含程序所依赖的头文件 10 //***************************************************************************** 11 #include <opencv2/core/core.hpp> 12 #include <opencv2/highgui/highgui.hpp> 13 #include <opencv2/imgproc/imgproc.hpp> 14 #include <iostream> 15 16 17 //******************************【命名空间声明部分】***************************** 18 // 描述:包含程序所使用的命名空间 19 //***************************************************************************** 20 using namespace std; 21 using namespace cv; 22 23 24 //******************************【全局变量声明部分】***************************** 25 // 描述:全局变量声明 26 //***************************************************************************** 27 Mat g_srcImage,g_dstImage1, g_dstImage2, g_dstImage3; //存储图片的Mat类型 28 int g_nBoxFilterValue = 3; //方框滤波参数值 29 int g_nMeanBlurValue = 3; //均值滤波参数值 30 int g_nGaussianBlurValue = 3; //高斯滤波参数值 31 32 33 //******************************【全局函数声明部分】***************************** 34 // 描述:全局函数声明 35 //***************************************************************************** 36 //轨迹条的回调函数 37 static void on_BoxFilter(int, void* ); //方框滤波 38 static void on_MeanBlur(int, void*); //均值滤波 39 static void on_GaussianBlur(int, void*); //高斯滤波 40 41 42 //******************************【main()部分】***************************** 43 // 描述:控制台应用程序的入口函数,我们的程序从这里开始 44 //***************************************************************************** 45 int main() 46 { 47 //【0】初始化 48 system("color 5E"); 49 50 //【1】读取原图 51 g_srcImage = imread( "1.jpg", 1 ); 52 if(!g_srcImage.data) { printf("Oh,no,读取srcImage错误!!!!\n"); return false; } 53 54 //【2】克隆原图到三个Mat类型中 55 g_dstImage1 = g_srcImage.clone(); 56 g_dstImage2 = g_srcImage.clone(); 57 g_dstImage3 = g_srcImage.clone(); 58 59 //【3】显示原图 60 namedWindow("【<0>原图窗口】", 1 ); 61 imshow("【<0>原图窗口】", g_srcImage ); 62 63 //【4】滤波操作处理 64 //***********************【<1>方框滤波】******************* 65 namedWindow("【<1>方框滤波】", 1); 66 createTrackbar("内核值:", "【<1>方框滤波】", &g_nBoxFilterValue, 40, on_BoxFilter); 67 on_BoxFilter(g_nBoxFilterValue, 0); 68 imshow("【<1>方框滤波】", g_dstImage1); 69 70 //***********************【<2>均值滤波】******************* 71 namedWindow("【<2>均值滤波】", 1); 72 createTrackbar("内核值:", "【<2>均值滤波】", &g_nMeanBlurValue, 40, on_MeanBlur); 73 on_MeanBlur(g_nMeanBlurValue, 0); 74 imshow("【<2>均值滤波】", g_dstImage2); 75 76 //***********************【<3>高斯滤波】******************* 77 namedWindow("【<3>高斯滤波】", 1); 78 createTrackbar("内核值:", "【<3>高斯滤波】", &g_nGaussianBlurValue, 40, on_GaussianBlur); 79 on_GaussianBlur(g_nGaussianBlurValue, 0); 80 imshow("【<3>高斯滤波】", g_dstImage3); 81 82 //【5】输出一些有帮助的信息 83 cout<<endl<<"\t嗯。好了,请调整滚动条观察图像效果~\n\n" 84 <<"\t按下“q”键时,程序退出~!\n"; 85 86 //【6】按下“q”键时,程序退出 87 while(char(waitKey(1) != ‘q‘)){} 88 89 return 0; 90 } 91 92 93 //******************************【on_BoxFilter()部分】***************************** 94 // 描述:方框滤波操作的回调函数 95 //***************************************************************************** 96 static void on_BoxFilter(int, void* ) 97 { 98 //【1】方框滤波操作 99 boxFilter(g_srcImage, g_dstImage1, -1, Size(g_nBoxFilterValue+1, g_nBoxFilterValue+1)); 100 //【2】显示出口 101 imshow("【<1>方框滤波】", g_dstImage1); 102 } 103 104 105 //******************************【on_MeanBlur()部分】***************************** 106 // 描述:均值滤波操作的回调函数 107 //***************************************************************************** 108 static void on_MeanBlur(int, void*) 109 { 110 //【1】均值滤波操作 111 blur(g_srcImage, g_dstImage2, Size(g_nMeanBlurValue+1, g_nBoxFilterValue+1), Point(-1, -1)); 112 //【2】显示出口 113 imshow("【<2>均值滤波】", g_dstImage2); 114 } 115 116 117 //******************************【on_GaussianBlur()部分】***************************** 118 // 描述:高斯滤波操作的回调函数 119 //***************************************************************************** 120 static void on_GaussianBlur(int, void*) 121 { 122 //【1】高斯滤波操作 123 GaussianBlur(g_srcImage, g_dstImage3, Size(g_nGaussianBlurValue*2+1, g_nGaussianBlurValue*2+1), 0, 0); 124 //【2】显示出口 125 imshow("【<3>高斯滤波】", g_dstImage3); 126 }
【opencv入门之五】线性滤波(方框滤波、均值滤波、高斯滤波)
标签:orm 存储 大小 roc 显示 enc 回调函数 滚动条 bool
原文地址:http://www.cnblogs.com/havendblog/p/7565165.html