• Open Source Computer Vision Library

图像缩放

Wikipedia,自由的百科全书

本例子演示函数cvResize的使用。

  1. #include <cv.h>
  2. #include <highgui.h>
  3. #include <math.h>
  4.  
  5. int main(int argc, char* argv[])
  6. {
  7. IplImage *src = 0; //源图像指针
  8. IplImage *dst = 0; //目标图像指针
  9. float scale = 0.618; //缩放倍数为0.618倍
  10. CvSize dst_cvsize; //目标图像尺寸
  11.  
  12. /* the first command line parameter must be image file name */
  13. if ( argc == 2 && (src = cvLoadImage(argv[1], -1))!=0 )
  14. {
  15. //如果命令行传递了需要打开的图片就无须退出,所以注释掉下面一行!
  16. //return -1;
  17. }
  18. else
  19. {
  20. src = cvLoadImage("tiger.jpg"); //载入工作目录下文件名为“tiger.jpg”的图片。
  21. }
  22.  
  23. dst_cvsize.width = src->width * scale; //目标图像的宽为源图象宽的scale倍
  24. dst_cvsize.height = src->height * scale; //目标图像的高为源图象高的scale倍
  25.  
  26. dst = cvCreateImage( dst_cvsize, src->depth, src->nChannels); //构造目标图象
  27. cvResize(src, dst, CV_INTER_LINEAR); //缩放源图像到目标图像
  28.  
  29. cvNamedWindow( "src", CV_WINDOW_AUTOSIZE ); //创建用于显示源图像的窗口
  30. cvNamedWindow( "dst", CV_WINDOW_AUTOSIZE ); //创建用于显示目标图像的窗口
  31.  
  32. cvShowImage( "src", src ); //显示源图像
  33. cvShowImage( "dst", dst ); //显示目标图像
  34.  
  35. cvWaitKey(-1); //等待用户响应
  36.  
  37. cvReleaseImage(&src); //释放源图像占用的内存
  38. cvReleaseImage(&dst); //释放目标图像占用的内存
  39. cvDestroyWindow( "src" ); //销毁窗口“src”
  40. cvDestroyWindow( "dst" ); //销毁窗口“dst”
  41. //void cvDestroyAllWindows(void);
  42.  
  43. return 0;
  44. }

Contributed by miaohuibin

Views
Personal tools