我正在尝试使用基于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实际操作吗?
答案 0 :(得分:1)
cvMoveWindow( "RescaledImage", 1500,1200 );
我的错误。我认为这是窗口/图像的维度。但这是窗口在屏幕上的位置。改为 -
cvMoveWindow( "RescaledImage", 100,100 );
现在两个窗户都很好!