OpenCV图像缩放

为了让所有输入图像同样大小,需要对图像进行缩放,用OpenCV的一个缩放函数cvResize就能搞定了。

缩放程序:





#include <cv.h>

#include <highgui.h>

#include <iostream>

int main(int argc, char* argv[])

{

IplImage *src = 0; //源图像指针

IplImage *dst = 0; //目标图像指针

float scale = 0.618; //缩放倍数为0.618

CvSize dst_cvsize; //目标图像尺寸

/* the first command line parameter must be image file name */

if ( argc == 2 && (src = cvLoadImage(argv[1], 0))!=0 )

{

//如果命令行传递了需要打开的图片就无须退出,所以注释掉下面一行!

//return -1;

}

else

{

src = cvLoadImage("face.jpg", 0); //载入工作目录下文件名为“tiger.jpg”的图片。

}

dst_cvsize.width = 100; //目标图像的宽为固定 100 像素

dst_cvsize.height = src->height * ((float)dst_cvsize.width/src->width); // 高同比例放大



dst = cvCreateImage( dst_cvsize, src->depth, src->nChannels); //构造目标图象

cvResize(src, dst, CV_INTER_LINEAR); //缩放源图像到目标图像



cvNamedWindow( "src", CV_WINDOW_AUTOSIZE ); //创建用于显示源图像的窗口

cvNamedWindow( "dst", CV_WINDOW_AUTOSIZE ); //创建用于显示目标图像的窗口



cvShowImage( "src", src ); //显示源图像

cvShowImage( "dst", dst ); //显示目标图像

cvWaitKey(-1); //等待用户响应

cvReleaseImage(&src); //释放源图像占用的内存

cvReleaseImage(&dst); //释放目标图像占用的内存

cvDestroyWindow( "src" ); //销毁窗口“src

cvShowImage( "src", src ); //显示源图像

cvShowImage( "dst", dst ); //显示目标图像

cvWaitKey(-1); //等待用户响应

cvReleaseImage(&src); //释放源图像占用的内存

cvReleaseImage(&dst); //释放目标图像占用的内存

cvDestroyWindow( "src" ); //销毁窗口“src

cvDestroyWindow( "dst" ); //销毁窗口“dst

//void cvDestroyAllWindows(void);

return 0;

}


0 评论:

Post a Comment