【opencv练习14 - 模糊图像 】
2016-09-04 12:31
465 查看
/****************************************************** 测试程序 模糊图像 时间:2016年8月24日 *******************************************************/ // Global Variables int DELAY_CAPTION = 1500; //标题延时1500ms int DELAY_BLUR = 100; int MAX_KERNEL_LENGTH = 31; Mat src; Mat dst; char window_name[] = "Smoothing Demo"; /// Function headers int display_caption( const char* caption ); int display_dst( int delay ); int main1( void ) { namedWindow( window_name, WINDOW_AUTOSIZE ); //【读取源文件】可以获取参数 src = imread( "YY01.jpg", 1 ); //【1、显示标题——原始图像】 if( display_caption( "Original Image" ) != 0 ) { return 0; } dst = src.clone();//构建操作图像,原始图像保持不变 if( display_dst( DELAY_CAPTION ) != 0 ) { return 0; } // 【1——滤波器】Applying Homogeneous blur if( display_caption( "Homogeneous Blur" ) != 0 ) { return 0; } for ( int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2 ) //【最大核长 = 31】 { blur( src, dst, Size( i, i ), Point(-1,-1) ); if( display_dst( DELAY_BLUR ) != 0 ) { return 0; } } // 【2——高斯滤波器】Applying Gaussian blur if( display_caption( "Gaussian Blur" ) != 0 ) { return 0; } for ( int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2 )//【最大核长 = 31】 { GaussianBlur( src, dst, Size( i, i ), 0, 0 ); if( display_dst( DELAY_BLUR ) != 0 ) { return 0; } } // 【3——均值滤波器】Applying Median blur if( display_caption( "Median Blur" ) != 0 ) { return 0; } for ( int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2 )//【最大核长 = 31】 { medianBlur ( src, dst, i ); if( display_dst( DELAY_BLUR ) != 0 ) { return 0; } //【显示DELAY_BLUR = 100ms】 } // 【4——双边滤波】 Applying Bilateral Filter if( display_caption( "Bilateral Blur" ) != 0 ) { return 0; } for ( int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2 ) { bilateralFilter ( src, dst, i, i*2, i/2 ); if( display_dst( DELAY_BLUR ) != 0 ) { return 0; } } // 【5——等待按键】 Wait until user press a key display_caption( "End: Press a key!" ); waitKey(0); return 0; } // 【显示标题】display_caption // 参数分析: // const char* caption //输入标题 int display_caption( const char* caption ) { //【清除当前显示】 dst = Mat::zeros( src.size(), src.type() ); //【输出文本】 putText( dst, caption, Point( src.cols/4, src.rows/2), FONT_HERSHEY_COMPLEX, 1, Scalar(255, 255, 255) ); //显示dst imshow( window_name, dst ); int c = waitKey( DELAY_CAPTION ); if( c >= 0 ) { return -1; } return 0; } // 【显示目标】display_caption // 参数分析: // int delay //延迟时间 int display_dst( int delay ) { imshow( window_name, dst ); int c = waitKey ( delay ); if( c >= 0 ) { return -1; } return 0; }
相关文章推荐
- 【opencv代码练习6】图像模糊
- python-opencv图像处理基础练习1
- OpenCV 3学习笔记(二) 图像的显示、腐蚀与模糊
- OpenCV图像模糊
- 基于OpenCV 的图像模糊
- 图像腐蚀,模糊,canny边缘检测,opencv中摄像头捕捉的图像
- OpenCV学习9--模糊图像
- python-opencv图像处理基础练习2
- opencv学习_14 (图像的尺度空间)
- 【OpenCV笔记 14】OpenCV图像增强方法直方图均衡化
- opencv入门学习第一章,对图像基本的操作(图像腐蚀、图像模糊、canny图像边缘检测)
- OpenCV学习笔记 图像腐蚀模糊和边缘检测
- 【opencv练习06-Scan图像の三种方法】
- opencv for python (14) 形态学转换(图像腐蚀、图像膨胀、开运算、闭运算、形态学梯度、礼帽、黑帽)
- opencv练习:将两幅同样大小的图像想减并显示结果
- opencv开发笔记(二):图像的模糊
- 基于OpenCV的视频图像组态 (14):音量控制
- python利用opencv合成模糊图像
- Python3与OpenCV3.3 图像处理(九)--高斯模糊
- 基于OpenCV的图像模糊与否检测