Подтвердить что ты не робот

Установка изображения на экран с использованием 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
}
4b9b3361

Ответ 1

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

namedWindow("Display frame", WINDOW_NORMAL)

до imshow.

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

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

Подробнее см. http://docs.opencv.org/modules/highgui/doc/user_interface.html#imshow

Ответ 2

Переходя 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);

Ответ 3

Вместо этого нужно ввести CV_WINDOW_OPENGL вместо CV_WINDOW_AUTOSIZE