2015-11-05 4 views
0

Поэтому я использую OpenCV 3.0, скомпилированный мной с помощью MinGW. Я пишу и создаю Visual Studio 2013 для Windows. И CV_WINDOW_NORMAL| CV_WINDOW_KEEPRATIO, так как в рейтинге namedWindow(), похоже, не ограничивается resizin моего окна, и я заметил, что CV_WINDOW_NORMAL=0, CV_WINDOW_KEEPRATIO=0. Любые объяснения?CV_WINDOW_KEEPRATIO, похоже, не работает

ответ

0

Насколько я помню, этот параметр не относится к самому окну, а к содержимому изображения окна.

Это означает, что вы по-прежнему можете свободно изменять размер своего окна, но отображаемое изображение сохраняет свое соотношение и окружено черными (или когда-либо окрашенными) полосками, а не растянутыми пропорционально.

редактировать: Отрывок из namedWindow-Documentation

Примечание

Qt бэкэнд поддерживает дополнительные флаги:

CV_WINDOW_FREERATIO или CV_WINDOW_KEEPRATIO: CV_WINDOW_FREERATIO регулирует изображение без уважения к его отношение, в то время как CV_WINDOW_KEEPRATIO поддерживает соотношение изображений. [...]

обратите внимание на ограничение QT.

Ваш второй вопрос об определении флагов: Я думаю, что причина, по которой оба равны нулю, состоит в том, что существует несколько групп эксклюзивных опций. (Нормальное окно < -> окно с фиксированным размером, свободная масштабируемость < -> коэффициент сохранения масштабируемости). У вас нет собственного бита для каждого из этих вариантов, потому что. Таким образом, по умолчанию это просто бит в anuset. Причиной для этого определения является простое чтение и понимание кода.

+0

Это не тот случай – Ilia

+0

@Ilia это - см. Ссылку и обратите внимание на разницу в формулировке. Некоторые флаги связаны с «окном», а некоторые флаги связаны с «изображением». –

+0

. Я вижу, что вы не получили то, о чем я говорил, так что вы видите gif для вас. Http://vk.com/doc13632015_437004532 – Ilia

Смежные вопросы