Je souhaite afficher une image en utilisant opencv sur Mac os X 13 '. La taille de l'image est de 1920 × 1080. Lorsque j'exécute ce code, je ne vois qu'une partie d'une image. J'ai besoin d'adapter l'image à l'écran.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include "opencv2/opencv.hpp"
#include<string.h>
using namespace cv;
using namespace std;
int main()
{
Mat image=imread("/Users/rafikgouiaa/Qt/projects/MakeVideo/build-MakeVideo- Desktop_Qt_5_0_2_clang_64bit-Debug/im.jpg");
namedWindow( "Display frame",CV_WINDOW_AUTOSIZE);
imshow("Display frame", image);
waitKey(0);
return 0
}
Si vous devez afficher une image plus grande que la résolution d'écran, vous devrez appeler
namedWindow("Display frame", WINDOW_NORMAL)
avant l'imshow.
Pour définir la taille souhaitée de l'appel de fenêtre, veuillez
cv::resizeWindow("Display frame", WIDTH, HEIGHT);
Pour plus de détails, voir http://docs.opencv.org/modules/highgui/doc/user_interface.html#imshow
Si vous passez CV_WINDOW_AUTOSIZE
À namedWindow()
, la taille de la fenêtre s'ajustera automatiquement pour s'adapter à l'image affichée. Et vous voyez qu'une partie de l'image est probablement parce que l'image est trop grande pour votre écran.
Pour travailler, vous pouvez d'abord redimensionner l'image à une taille plus petite. Comme ça:
Mat image=imread("...");
resize(image, image, Size(image.cols/2, image.rows/2)); // to half size or even smaller
namedWindow( "Display frame",CV_WINDOW_AUTOSIZE);
imshow("Display frame", image);
Vous devez mettre CV_WINDOW_OPENGL à la place CV_WINDOW_AUTOSIZE