Updated by Dmitry Retinskiy over 10 years ago
In OpenCV 3.0 (I did not try other versions), when displaying small images, even with the `WINDOW_AUTOSIZE` flag, the window is not scaled properly.
<pre>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/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], IMREAD_COLOR); // Read the file
if( image.empty() ) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl ;
return -1;
}
namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
imshow( "Display window", image ); // Show our image inside it.
while (waitKey(0) != 27); // Wait for ESC key
return 0;
}
</pre>
Test image (100x100):
!http://i.stack.imgur.com/6XB1v.png!
Results:
!http://i.stack.imgur.com/LZOU7.png!
When moving the mouse to the displayed image, I got this:
!http://i.stack.imgur.com/Fo9kx.png!
<pre>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/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], IMREAD_COLOR); // Read the file
if( image.empty() ) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl ;
return -1;
}
namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
imshow( "Display window", image ); // Show our image inside it.
while (waitKey(0) != 27); // Wait for ESC key
return 0;
}
</pre>
Test image (100x100):
!http://i.stack.imgur.com/6XB1v.png!
Results:
!http://i.stack.imgur.com/LZOU7.png!
When moving the mouse to the displayed image, I got this:
!http://i.stack.imgur.com/Fo9kx.png!