Возьми OpenCV окно и сделай полный экран - PullRequest
11 голосов
/ 07 апреля 2011

В настоящее время я делаю проект OpenCV на C ++, где я ищу движение с помощью kinect и использую его для показа слайд-шоу (без распознавания).В настоящее время я показываю слайд-шоу с помощью OpenCV (так как у меня было всего около недели, чтобы это сделать).Это выглядит хорошо и быстро.Единственная проблема заключается в том, что это будет демонстрироваться для большого производства, и я не могу позволить себе показывать окно (я говорю об оформлении окон, например в строке заголовка и т. Д.).

Iнужно избавиться от строки заголовка.Я провел много исследований, и я обнаружил, что вы можете волшебным образом захватить дескриптор окна, вызвав cvGetWindowHandle ("SlideShow"), но это пустая функция, поэтому я не знаю, как я должен это делать.получить ручку от этого, чтобы манипулировать.

Я разрабатываю это как для Windows, так и для Ubuntu, так как в конечном итоге оно будет работать на компьютере с Windows, но я могу только продемонстрировать его на ноутбуке с Ubuntu.

Если кто-нибудь может сказать мне, как взять окно и сделать его полноэкранным с измененным размером изображения, чтобы заполнить большинство, если не весь экран в Windows или Ubuntu, я буду всегда благодарен.

Ответы [ 2 ]

20 голосов
/ 13 сентября 2011

Я использую OpenCV 2.1 в Ubuntu 11.04.В моей системе флаги CV_WINDOW_FULLSCREEN и CV_WINDOW_AUTOSIZE оба отображаются в 1, и оба флага ведут себя точно так же.Они дают вам окно фиксированного размера, которое ожидается для флага AUTOSIZE, но не для FULLSCREEN.Я думаю, что эти два флага предназначены для разных функций, хотя их внешний вид очень запутан.Флаг CV_WINDOW_NORMAL отображается на значение 0, которое вы использовали.Это дает вам окно с изменяемым размером, которое вы можете развернуть, но это не полноэкранное окно.

Редактировать: я только что нашел решение в другой записи Stachoverflow .Вот решение из этого поста, которое отлично работало в моей системе:

    cvNamedWindow("Name", CV_WINDOW_NORMAL);
    cvSetWindowProperty("Name", CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN);
    cvShowImage("Name", your_image);

Я получаю настоящий полноэкранный режим без строки заголовка и т. Д.

3 голосов
/ 07 апреля 2011

вы можете использовать функцию cv :: setWindowProperty для вашей цели, просто установите для нее значение CV_WINDOW_FULLSCREEN.

Полная документация в openCV-WIKI

...