2013-08-01 11 views
6

Ich möchte so etwas wie die folgenden tun, um auf dem Bildschirm zwei Bilder anzuzeigen:Wie kann ich imshow verwenden, um mehrere Bilder in mehreren Fenstern anzuzeigen?

imshow("1", img1); 
imshow('2', 'img2'); 

Ist es möglich, das zu tun?

Danke!

+0

möglich Duplikat [Karte mehr (2,3,4, ...) Bilder im selben Fenster in OpenCV] (http://stackoverflow.com/questions/5089927/show-multiple-2- 3-4-Bilder-im-selben-Fenster-in-opencv) – GPPK

+0

viele Duplikate verfügbar! – Khashayar

Antwort

9

Ja, es ist möglich. Die Funktion void imshow(const string& winname, InputArray mat) zeigt ein Bild im angegebenen Fenster an, wobei -

  • winname - Name des Fensters ist.
  • image - Bild wird angezeigt.

Das Fenster wird durch seinen Namen identifiziert. Also um zwei Bilder (img1, img2) in zwei verschiedenen Fenstern anzuzeigen; verwenden imshow mit anderen Namen wie: -

imshow("1",img1); 
imshow("2",img2); 
+1

Wissen Sie, ob das in Python mit den cv2-Bindungen möglich ist? Wenn ich imshow direkt hintereinander rufe, wird der Prozess beendet. – Jesse

+1

ja ich möchte auch Python gleichwertigen Code wissen. Zwei aufeinanderfolgende Aufrufe von cv2.imshow stellen keine zwei Fenster dar. – aquagremlin

2

Und hier ist, wie es in Python zu tun:

cv2.namedWindow("Channels") 
    cv2.imshow("Channels", image_channels) 

    cv2.namedWindow("Main") 
    cv2.imshow("Main", image_main) 

Sie einfach einen Namen Fenster erstellen und seinen Namen als String übergeben imshow.

+0

Ich benutze jupyter und cv2.imshow zeigt nichts an, während plt.imshow() funktioniert. Irgendwelche Ideen? – SeanJ

2

Ich habe diese Arbeit in Python, mit einem Vorbehalt:

cv2.imshow("image 1", my_image_1) 
cv2.imshow("image 2", my_image_2) 
cv2.waitKey(0) 

Der Nachteil ist, dass beiden Fenster in der exakt gleichen Stelle auf dem Bildschirm, so dass es nur sieht wie ein Fenster geöffnet (Ubuntu 14.4). Ich kann eine Maus auf die andere ziehen.

ich jetzt bin auf der Suche nach wie automagically die beiden nebeneinander zu platzieren, das ist, wie ich diese Frage gefunden ..

+3

Sie können das Fenster folgendermaßen verschieben: cv2.moveWindow ("image 2", 0, 0) – velotron

Verwandte Themen