在OpenCV C ++中显示无法正常显示

时间:2015-11-06 15:40:59

标签: c++ opencv

我正在使用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像素的图像从命令行运行时,我得到以下输出。 enter image description here

几秒钟后,这会更改为以下内容。enter image description here

有人可以解释为什么显示它的前几秒以及为什么在最终图片中更改分辨率(它应该看起来几乎像一个正方形,但它看起来像一个矩形)。还有如何纠正这个?

0 个答案:

没有答案