2013-05-29 5 views
7

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

Мой код очень прост, и вдоль линий этого:

cv2.namedWindow("main") 

.... 

result = np.hstack((res2, foreground)) 
result = np.hstack((ff, result)) 

cv2.imshow("main", result) 
cv2.waitKey(20) 

В opencv documentation состояний:

namedWindow 
flags – Flags of the window. Currently the only supported flag is CV_WINDOW_AUTOSIZE . If this is set, the window size is automatically adjusted to fit the displayed image (see imshow()), and you cannot change the window size manually. 

Но Qt движки, очевидно, имеют дополнительные флаги. У меня нет qt-бэкэнд. Есть ли способ увеличить размер изображений, чтобы я мог их видеть?

ответ

10

Да, к сожалению, вы не можете вручную изменить размер окна nameWindow без поддержки Qt. Ваши варианты:

  • использовать cv2.resize функции, чтобы изменить размер изображения до нужного размера до отображения изображения
  • установить OpenCV с поддержкой серверной Qt и использовать cv2.namedWindow("main", CV_WINDOW_NORMAL)
+0

Вы правы. Я использовал изменение размера на рамке, и это сработало. – Bak

+0

как вы использовали размер? – user391339

+0

cv2.resize (изображение, (0, 0), fx = 0,5, fy = 0,5) изменит размер обеих осей наполовину, а cv2.resize (изображение, (100, 50)) изменит размер до 100 и высоту 50 пикселей , – uutsav

-2

Согласно документам, вам необходимо создать свое окно с autosize true.

cv2.namedWindow("main", cv2.WINDOW_AUTOSIZE) 

Ваш вызов imshow автоматически изменит размер окна в соответствии с вашим изображением.

+0

Опция WINDOW_AUTOSIZE является по умолчанию и устанавливает размер самого окна к фактическому фиксированному размеру изображения. –

2

Вы можете использовать WINDOW_NORMAL флаг при вызове namedWindow, как показано ниже. Это позволит вам изменить размер окна.

namedWindow("Image", WINDOW_NORMAL); 

Проверьте функцию namedWindow документированы here

8

Просто напишите

cv2.namedWindow("main", cv2.WINDOW_NORMAL) 

, а затем вручную изменить его размер до нужного размера

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