c - opencv Resize()问题

标签 c opencv ubuntu-10.04

我正在尝试使用基于 ubuntu 10.04 构建的 opencv2 来获取一个简单的程序,该程序读取现有图像,从中创建另一个图像并将原始图像的大小调整为 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() 和 cvResize() 吗?

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

有没有关于 OpenCV 的网络(博客、教程)和书籍,其中有很多示例代码,可以用来实际学习 opencv?

最佳答案

cvMoveWindow( "RescaledImage", 1500,1200 ); 

我的错误。我认为这是窗口/图像的尺寸。但这是窗口在屏幕上的位置。将其更改为 -

cvMoveWindow( "RescaledImage", 100,100 );

两个窗口现在都很好!

关于c - opencv Resize()问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6538063/

相关文章:

Linux 模块依赖

c++ - 是否有用于 OpenNI2 的 CMakeLists?

c - 如何使用 asm 程序并在 C 中获取返回值

c - 从文件中的单词中删除字母 C - 有问题的符号

c - 如何检查位图数组中是否至少有一个元素不为零?

c - printf 为什么以及如何挑选出匹配的参数?

c++ - OpenCv ANN 训练相同的数据不同的输出

python - 在 Python 中从屏幕捕获视频数据

visual-studio - OpenCV 和 Microsoft Visual Studio 2012(适用于 x64)

linux - 在 Linux 中模拟/模拟 iOS