您的位置:首页 > 其它

缩放图像

2016-07-10 00:33 309 查看
一、主要函数介绍

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;
}


效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: