opencv学习(7)——图像平滑
2016-07-03 18:00
357 查看
#include <iostream> #include <vector> #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/imgcodecs.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/features2d/features2d.hpp" using namespace std; using namespace cv; /// Global Variables int DELAY_CAPTION = 1500; 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 ); /** * function main */ int main( void ) { namedWindow( window_name, WINDOW_AUTOSIZE ); /// Load the source image src=imread("D:\\software_anz\\opencv\\opencv\\sources\\samples\\data\\fruits.jpg", 1 ); if( display_caption( "Original Image" ) != 0 ) { return 0; } dst = src.clone(); if( display_dst( DELAY_CAPTION ) != 0 ) { return 0; } /// Applying Homogeneous blur if( display_caption( "Homogeneous Blur" ) != 0 ) { return 0; } for ( int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2 ) { blur( src, dst, Size( i, i ), Point(-1,-1) ); if( display_dst( DELAY_BLUR ) != 0 ) { return 0; } } /// Applying Gaussian blur if( display_caption( "Gaussian Blur" ) != 0 ) { return 0; } for ( int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2 ) { GaussianBlur( src, dst, Size( i, i ), 0, 0 ); if( display_dst( DELAY_BLUR ) != 0 ) { return 0; } } /// Applying Median blur if( display_caption( "Median Blur" ) != 0 ) { return 0; } for ( int i = 1; i < MAX_KERNEL_LENGTH; i = i + 2 ) { medianBlur ( src, dst, i ); if( display_dst( DELAY_BLUR ) != 0 ) { return 0; } } /// 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; } } /// Wait until user press a key display_caption( "End: Press a key!" ); waitKey(0); return 0; } /** * @function display_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) ); imshow( window_name, dst ); int c = waitKey( DELAY_CAPTION ); if( c >= 0 ) { return -1; } return 0; } /** * @function display_dst */ int display_dst( int delay ) { imshow( window_name, dst ); int c = waitKey ( delay ); if( c >= 0 ) { return -1; } return 0; }
1.putText()函数
C++: void putText(Mat& img, const string& text, Point org, int fontFace, double fontScale, Scalar color, int thickness=1, int lineType=8, bool bottomLeftOrigin=false )
Parameters:
img – 显示文字所在图像.
text – 待显示的文字.
org – 文字在图像中的左下角 坐标.
font – 字体结构体.
fontFace – 字体类型, 可选择字体:FONT_HERSHEY_SIMPLEX, FONT_HERSHEY_PLAIN,FONT_HERSHEY_DUPLEX,FONT_HERSHEY_COMPLEX,FONT_HERSHEY_TRIPLEX,FONT_HERSHEY_COMPLEX_SMALL,FONT_HERSHEY_SCRIPT_SIMPLEX,orFONT_HERSHEY_SCRIPT_COMPLEX,以上所有类型都可以配合 FONT_HERSHEY_ITALIC使用,产生斜体效果。
fontScale – 字体大小,该值和字体内置大小相乘得到字体大小
color – 文本颜色
thickness – 写字的线的粗细,类似于0.38的笔尖和0.5的笔尖
lineType – 线性.
bottomLeftOrigin – true, 图像数据原点在左下角. Otherwise, 图像数据原点在左上角.
2.blur(),GaussianBlur(),medianBlur(),bilateralFilter()
参考:http://blog.csdn.net/vblittleboy/article/details/9187447
相关文章推荐
- 实习杂记(28):PropertyAnimation学习
- Linux上配置FTP服务
- linux常用命令
- 证书相关概念及使用openssl生成自认证证书
- 探索《How Tomcat Works》 心得(六) 加载器 上
- Linux压缩命令
- linux下压缩与解压(zip、unzip、tar)详解
- OpenGL学习进程(8)第六课:点、边和图形(三)绘制图形
- ubuntu--apt-get update(由于没有公钥,无法验证下列签名)
- 大型网站架构模式
- 【JavaWeb学习】之Tomcat配置
- Linux 安全工具之extundelete误删除恢复
- opencv学习(6)——图像金字塔
- PERCONA-TOOLKIT : pt-ioprofile分析IO情况
- Mac下Nginx环境配置
- 如何使用shell脚本快速排序和去重文件数据
- 设备文件系统
- 简单易学的机器学习算法——Metropolis-Hastings算法
- shell查询xml内容
- Mac、Linux与Windows