Подгонка изображения к экрану с помощью imshow opencv

Я хочу отобразить изображение с помощью opencv на Mac OS X 13 ‘. Размер изображения составляет 1920 × 1080. Когда я запускаю этот код, я вижу только часть изображения. Мне нужно подогнать изображение к экрану.

#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
}

14

Решение

Если вам нужно показать изображение, которое больше разрешения экрана, вам нужно будет позвонить

namedWindow("Display frame", WINDOW_NORMAL)

перед имшоу.

Чтобы установить желаемый размер окна вызова, пожалуйста,

cv::resizeWindow("Display frame", WIDTH, HEIGHT);

Для более подробной информации смотрите http://docs.opencv.org/modules/highgui/doc/user_interface.html#imshow

21

Другие решения

Переходя CV_WINDOW_AUTOSIZE в namedWindow() сделает размер окна автоматически настроенным, чтобы соответствовать отображаемому изображению. И вы видите, что часть изображения, вероятно, потому что изображение слишком велико для вашего экрана.

Чтобы работать, вы можете сначала изменить размер изображения до меньшего размера. Как это:

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);
5

Вам нужно поставить CV_WINDOW_OPENGL вместо CV_WINDOW_AUTOSIZE

-1
По вопросам рекламы [email protected]