OpenCV常用函数——图像采样
2016-03-04 20:16
1016 查看
本文主要介绍:Opencv实现图像采用。
1.Mat数据类型:
2.IplImage* 数据类型
1.Mat数据类型:
/*********************************************************************** 函数名称:MatImgSample 函数功能:对IplImage类型的图像进行采样 函数参数: src :原图像 dRatioX :列采样比率,0.5为2采样 dRatioY :行采样比率,0.5为2采样 nType :采样类型, 1 resize, 2 pyrDown, 3 pyrUp 返回值:采样后的图像 创建人 : 创建时间:2016.3.1 备注: ***********************************************************************/ bool MatImgSample(Mat &src, Mat &dst, double dRatioX, double dRatioY, int nType) { if(nType == 1) //直接降采样或上采样 上、下采样由dRatioX、dRatioY决定 resize(src, dst, Size(), dRatioX, dRatioY); else if(nType == 2) //高斯降采样,即先高斯平滑,后采样 pyrDown(src, dst, Size(src.cols*dRatioX, src.rows*dRatioX)); else if(nType == 3) pyrUp(src, dst, Size(src.cols*dRatioX, src.rows*dRatioX)); else { printf("没有该采样类型。\n"); return false; } return true; }
2.IplImage* 数据类型
/*********************************************************************** 函数名称:IplImageSample 函数功能:对IplImage类型的图像进行采样 函数参数: src :原图像 dRatioX :列采样比率,0.5为2采样 dRatioY :行采样比率,0.5为2采样 nType :采样类型, 1 cvResize, 2 cvPyrDown, 3 cvPyrUp 返回值:采样后的图像 创建人 : 创建时间:2016.3.1 备注: ***********************************************************************/ IplImage* IplImageSample(IplImage *src, double dRatioX, double dRatioY, int nType) { CvSize dstSize ; dstSize.width = src->width*dRatioX; dstSize.height = src->height*dRatioY; IplImage* dst = cvCreateImage(dstSize,src->depth,src->nChannels); if(nType == 1) //直接降采样或上采样 上、下采样由dRatioX、dRatioY决定 cvResize(src,dst,CV_INTER_CUBIC); else if(nType == 2) //高斯降采样,即先高斯平滑,后采样 cvPyrDown( src, dst, CV_GAUSSIAN_5x5 ); else if(nType == 3) cvPyrUp( src, dst, CV_GAUSSIAN_5x5 ); else { printf("没有该采样类型。\n"); return NULL; } return dst; }
相关文章推荐
- 操作系统课程设计2 编写Linux bash脚本
- 操作系统课程设计1 Linux下编译c++文件
- 理论与实际相结合——三层架构解析
- 校园网&openwrt记(十)iproute2
- linux常用命令-ls
- Hadoop的奇技淫巧
- [linux]date命令时间戳和时间之间的转换
- Docker image 镜像介绍
- 自定义下拉菜单模式(Spinner与setDropDownViewResource)
- 将DHT11移植到Linux系统上
- 《Linux内核分析》第二周学习笔记
- [dp] hdu3853 loops
- Linux 安装jdk和配置
- Hadoop I/O
- Android 项目框架构建
- Linux多线程编程的时候如何查看一个进程中的某个线程是否存活
- 《Linux操作系统分析》之分析精简的Linux的内核中断和时间片轮询
- Pyhton执行shell
- 网站代码该如何优化?
- 简单介绍下C/S与B/S架构的异同