2013-05-29 9 views
7

Ich benutze opencv 2 mit einer Webcam. Ich kann den Videostream abrufen und verarbeiten, aber ich finde keine Möglichkeit, die Größe des Anzeigefensters zu ändern. Ich habe einige Videobilder horizontal gestapelt, aber die Bilddimension ist sehr klein, dass es schwierig ist, Dinge zu sehen.Wie ändere ich das Fenster in opencv2 python

Mein Code ist ziemlich einfach, und nach dem Vorbild dieses:

cv2.namedWindow("main") 

.... 

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

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

Die opencv documentation Staaten:

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. 

Aber qt Backends haben offenbar zusätzliche Fahnen. Ich habe kein QT-Backend. Gibt es eine Möglichkeit für mich, die Größe der Bilder zu vergrößern, damit ich sie sehen kann?

Antwort

10

Ja, leider können Sie die Größe eines nameWindow Fensters ohne Qt-Backend nicht manuell ändern. Ihre Optionen:

  • Verwendung cv2.resize Funktion das Bild auf die gewünschte Größe vor der Anzeige des Bildes
  • installieren OpenCV mit Qt Backend-Unterstützung, um die Größe und cv2.namedWindow("main", CV_WINDOW_NORMAL)
+0

Sie haben Recht. Ich habe die Größe des Rahmens geändert und es hat funktioniert. – Bak

+0

Wie haben Sie die Größe geändert? – user391339

+0

cv2.resize (Bild, (0, 0), fx = 0,5, fy = 0,5) wird die Größe beider Achsen um die Hälfte ändern, während cv2.resize (Bild, (100, 50)) die Größe 100 und die Höhe 50 Pixel hat . – uutsav

-2

Wie in der Dokumentation, müssen Sie Ihr Fenster mit Autosize True erstellen.

Ihr Aufruf von IMshow passt die Größe des Fensters automatisch an Ihr Bild an.

+0

Die Option WINDOW_AUTOSIZE als Standard und stellt die Größe des Fenster auf die tatsächliche feste Größe des Bildes. –

2

Sie können die WINDOW_NORMAL Flag verwenden, verwenden beim Aufruf die namedWindow Funktion wie unten gezeigt. Dadurch können Sie die Größe Ihres Fensters ändern.

namedWindow("Image", WINDOW_NORMAL); 

Überprüfen Sie die namedWindow Funktion dokumentiert here

8

Einfach

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

und dann manuell die Größe auf die gewünschte Größe

Verwandte Themen