我正在使用Ubuntu 14.04,而且我是OpenCV的新手。
我使用基本代码打开图像并按如下方式显示。
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main( int argc, char** argv )
{
if( argc != 2)
{
cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
return -1;
}
Mat image;
image = imread(argv[1], CV_LOAD_IMAGE_COLOR); // Read the file
if(! image.data ) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl ;
return -1;
}
cout<<image.rows<<image.cols<<endl;
namedWindow( "Display window" , WINDOW_NORMAL | WINDOW_KEEPRATIO);// Create a window for display.
imshow( "Display window", image ); // Show our image inside it.
while(cv::waitKey(1) != 27); // Wait for Esc
return 0;
}
当我使用分辨率为340x329像素的图像从命令行运行时,我得到以下输出。
有人可以解释为什么显示它的前几秒以及为什么在最终图片中更改分辨率(它应该看起来几乎像一个正方形,但它看起来像一个矩形)。还有如何纠正这个?