opencv Resize()问题

时间:2011-06-30 16:33:41

标签: c opencv ubuntu-10.04

我正在尝试使用基于ubuntu 10.04构建的opencv2来获取一个简单的程序,该程序读取一个exisitng图像,从中创建另一个图像并将原始图像的大小调整为2(宽度和高度)。下面是代码。执行时,我没有看到调整大小的图像窗口。

# include "stdio.h"
#include "opencv2/highgui/highgui_c.h"
#include <opencv2/imgproc/types_c.h>

int main( int argc, char** argv ) {
  IplImage* img = 0;
  IplImage* dst_img = 0;


  if( argc < 2 ) {
    printf( "Usage: Accepts one image as argument\n" );
    exit( EXIT_SUCCESS );
  }

  img = cvLoadImage( argv[1],1);
  if( !img ) {
    printf( "Error loading image file %s\n", argv[1]);
    exit( EXIT_SUCCESS );
  }

  dst_img = cvCreateImage(cvSize(img->width*2,img->height*2),img->depth,img->nChannels);
  if( !dst_img ) {
    printf( "Error loading output image file \n");
    exit( EXIT_SUCCESS );
  }


  cvResize(img,dst_img,CV_INTER_LINEAR); 

  cvNamedWindow( "Original Image", CV_WINDOW_AUTOSIZE );
  cvNamedWindow( "RescaledImage", CV_WINDOW_AUTOSIZE );

  cvMoveWindow( "Original Image", 720, 515 );
  cvMoveWindow( "RescaledImage", 1500,1200 );

  cvShowImage( "Original Image", img );
  cvShowImage( "RescaledImage", dst_img );

  cvWaitKey( 0 );

  cvReleaseImage( &img );
  cvReleaseImage( &dst_img );

  cvDestroyWindow( "Original Image" );
  cvDestroyWindow( "RescaledImage" );

  return EXIT_SUCCESS;
  }

我正在使用cvCreateImage(),&amp; cvResize()正确地在上面?

如何在两个方向上将输入图像的大小调整为2?

Web上的任何指针(博客,教程),OpenCV的书籍都有很多示例代码,可以用来学习opencv实际操作吗?

1 个答案:

答案 0 :(得分:1)

cvMoveWindow( "RescaledImage", 1500,1200 ); 

我的错误。我认为这是窗口/图像的维度。但这是窗口在屏幕上的位置。改为 -

cvMoveWindow( "RescaledImage", 100,100 );

现在两个窗户都很好!