一、主要函数介绍
1.1 Resize
函数功能:图像大小变换
函数原型:
void cvResize(
const CvArr* src,
CvArr* dst,
int interpolation=CV_INTER_LINEAR
);
参数说明:
src
输入图像.
dst
输出图像.
interpolation
差值方法:
• CV_INTER_NN - 最近邻差值,
• CV_INTER_LINEAR - 双线性差值 (缺省使用)
• CV_INTER_AREA - 使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于 CV_INTER_NN 方法..
• CV_INTER_CUBIC - 立方差值.
函数 cvResize 将图像 src 改变尺寸得到与 dst 同样大小。若设定 ROI,函数将按常规支持 ROI.
二、示例程序代码
#include "opencv/cv.h"
#include "opencv/highgui.h"
int main(int argc,char** argv)
{
double fScale = 0.314; //缩放比例
CvSize dst_imageSize; //目标图像尺寸
//读取文件
IplImage* src_image = cvLoadImage(argv[1]);
IplImage* dst_image = NULL;
//计算目标图像的大小
dst_imageSize.width = src_image->width * fScale;
dst_imageSize.height = src_image->height * fScale;
//创建图像并缩放
dst_image = cvCreateImage(dst_imageSize,src_image->depth,src_image->nChannels);
cvResize(src_image,dst_image,CV_INTER_AREA);
//创建窗口
cvNamedWindow("src_image",1);
cvNamedWindow("dst_image",1);
//在指定窗口显示图像
cvShowImage("src_image",src_image);
cvShowImage("dst_image",dst_image);
//等待ESC按键事件
while((cvWaitKey(0) != 27)){
}
//保存图像
cvSaveImage("dst_image.jpg",dst_image);
//摧毁窗口并释放内存
cvDestroyWindow("src_image");
cvDestroyWindow("dst_image");
cvReleaseImage(&src_image);
cvReleaseImage(&dst_image);
return 0;
}
效果: