#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp" using namespace std;
using namespace cv; /// 全局变量
int DELAY_CAPTION = ;
int DELAY_BLUR = ;
int MAX_KERNEL_LENGTH = ; Mat src; Mat dst;
char window_name[] = "Filter Demo 1"; /// 函数申明
int display_caption( char* caption );
int display_dst( int delay ); /**
* main 函数
*/
int main( int argc, char** argv )
{
namedWindow( window_name, CV_WINDOW_AUTOSIZE ); /// 载入原图像
src = imread( "../images/lena.jpg", ); if( display_caption( "Original Image" ) != ) { return ; } dst = src.clone();
if( display_dst( DELAY_CAPTION ) != ) { return ; } /// 使用 均值平滑
if( display_caption( "Homogeneous Blur" ) != ) { return ; } for ( int i = ; i < MAX_KERNEL_LENGTH; i = i + )
{ blur( src, dst, Size( i, i ), Point(-,-) );
if( display_dst( DELAY_BLUR ) != ) { return ; } } /// 使用高斯平滑
if( display_caption( "Gaussian Blur" ) != ) { return ; } for ( int i = ; i < MAX_KERNEL_LENGTH; i = i + )
{ GaussianBlur( src, dst, Size( i, i ), , );
if( display_dst( DELAY_BLUR ) != ) { return ; } } /// 使用中值平滑
if( display_caption( "Median Blur" ) != ) { return ; } for ( int i = ; i < MAX_KERNEL_LENGTH; i = i + )
{ medianBlur ( src, dst, i );
if( display_dst( DELAY_BLUR ) != ) { return ; } } /// 使用双边平滑
if( display_caption( "Bilateral Blur" ) != ) { return ; } for ( int i = ; i < MAX_KERNEL_LENGTH; i = i + )
{ bilateralFilter ( src, dst, i, i*, i/ );
if( display_dst( DELAY_BLUR ) != ) { return ; } } /// 等待用户输入
display_caption( "End: Press a key!" ); waitKey();
return ;
} int display_caption( char* caption )
{
dst = Mat::zeros( src.size(), src.type() );
putText( dst, caption,
Point( src.cols/, src.rows/),
CV_FONT_HERSHEY_COMPLEX, , Scalar(, , ) ); imshow( window_name, dst );
int c = waitKey( DELAY_CAPTION );
if( c >= ) { return -; }
return ;
} int display_dst( int delay )
{
imshow( window_name, dst );
int c = waitKey ( delay );
if( c >= ) { return -; }
return ;
}

最新文章

  1. JavaSE基础01
  2. 实用js代码大全
  3. 跨线程操作UI控件
  4. Day6 - Python基础6 面向对象编程
  5. sql两表联合查询
  6. 【ASP.NET Core快速入门】(十四)MVC开发:UI、 EF + Identity实现、注册实现、登陆实现
  7. redis的几种数据导入导出方式【转】
  8. 解决远程连接MongoDB出现错误
  9. JavaScript代理模式
  10. Vue基础01vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令
  11. A1125. Chain the Ropes
  12. 前端基于easyui的mvc扩展
  13. PHP 的命令行模式
  14. 设备指纹(Device Fingerprinting)是什么?
  15. xss基础
  16. C#访问和操作MYSQL数据库
  17. tomcat启动报错“Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: iZ25fsk1ifk: iZ25fsk1ifk”
  18. selenium+python自动化96-执行jquery报:$ is not defined
  19. build.xml
  20. Java操作excel(POI)

热门文章

  1. Python笔记_第四篇_高阶编程_高阶函数_1.map和reduce
  2. 吴裕雄--天生自然MySQL学习笔记:MySQL简介
  3. ZJNU 1426 - YNingC的困惑
  4. CSRF(cross-site request forgery),跨站请求伪装
  5. JDK8stream将list转Map对象报错java.lang.IllegalStateException
  6. tensorflow(六)
  7. del|append()|insert()|pop()|remove()|sort()|sorted|reverse()|len()|range()|min()|max()|sum()|[:]|区分两种列表复制|
  8. 关于XML的一些总结
  9. python学习笔记(28)-unittest单元测试-执行用例
  10. fastjon案例