我正在尝试使用基于 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/