2013-04-09 3 views
4

Я пробовал некоторые варианты, но кажется, что resizeWindow ничего не делает. Я даю простой пример кода, результатом является то, что 2 окна имеют одинаковый размер, в то время как он должен быть разных размеров.opencv - resizeWindow ничего не делать?

Mat m = imread("somePath",CV_LOAD_IMAGE_COLOR); 
namedWindow("aa",CV_WINDOW_NORMAL); 
namedWindow("bb",CV_WINDOW_NORMAL); 
imshow("aa",m); 
imshow("bb",m); 
resizeWindow("aa",400,400); 
resizeWindow("bb",800,800); 
waitKey(0); 

Я работаю с Eclipse, CDT на ubunto 12.04 с OpenCV 2.4.3.

  • Я попытался отладить его, попав в функцию, но мне не удалось добавить highGui modoul в качестве внешнего источника, я получаю ошибку компиляции некоторого h-файла.

ответ

1

У меня тоже была эта проблема. В нижней строке окна OpenCV минимальный размер, и оба этих окна, которые вы пытаетесь создать, падают ниже него. Я достаточно уверен, что ваши области изображения также обрезаны, возможно, с серой или другой фиктивной информацией.

+0

как я уже сказал, я пробовал некоторые варианты. Я исправляю код, поэтому размеры 400 и 800, ничего не меняются. – shanif

+0

зависит от вашей установки, см. Сообщение ниже. – Vlad

3

Убедитесь, что OpenCV установлена ​​с поддержкой серверной Qt.

Цитата the documentation of namedWindow() (курсив мой):

флаги - флаги окна. В настоящее время поддерживается только флаг CV_WINDOW_AUTOSIZE. Если этот параметр установлен, размер окна будет автоматически , скорректированный с учетом отображаемого изображения (см. Imshow()), и вы не можете изменить размер окна вручную.

...

Примечание: Qt бэкэнд поддерживает дополнительные флаги: CV_WINDOW_NORMAL или CV_WINDOW_AUTOSIZE: CV_WINDOW_NORMAL позволяет изменять размер окна, в то время как CV_WINDOW_AUTOSIZE автоматически регулирует размер окна, чтобы соответствовать отображаемое изображение (см imshow()), и вы не можете изменить размер окна вручную.

Скорее всего, CV_WINDOW_AUTOSIZE - это единственный поддерживаемый флаг в вашей системе. Documentation for resizeWindow говорит, что только созданные окна безCV_WINDOW_AUTOSIZE флаг может быть изменен. Ваши варианты:

  • установить OpenCV с Qt бэкэндом или
  • использование resize() функции для изменения размера изображений перед выводом его.
Смежные вопросы