2016-04-18 11 views
-1
cvShowImage("SMART", cropped); 
cvWaitKey(10); 

cvShowImage("SMART", cropped); 
cvWaitKey(0); 

Was ist der Unterschied zwischen diesen beiden Funktionen ist und wenn ich diese cvWaitKey(10) Werke für Schleife in unendlich verwenden, aber cvWaitKey(0) oder cvWaitKey(30) funktioniert nicht. Was ist der Grund?Ich mag den Unterschied zwischen cvWaitKey (0) und cvWaitKey wissen (10)

+1

_Bearbeiten nicht ... ... was ist der Fehler/das Problem? [Lesen Sie das Dokument!] (Http://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html#waitkey) – Miki

+0

Im gleichen Fenster bekomme ich die Echtzeit-Bilderrahmen. Wenn ich cvWaitKey (0) verwende, muss ich das Fenster schließen, um das nächste Bild mit einem anderen Fenster zu erhalten. aber cvWaitKey (10) funktioniert. Ich möchte einen rasberryPi Schalter verwenden, um dies zu tun. Wenn der Schalter gedrückt wird, möchte ich das Programm stoppen. Ich bin neu zu opencv und rasberryPi – Dilz

+0

verwenden Sie einfach 'if ((waitKey (1) & 0xFF) == 'q') break;' oder etwas Ähnliches. Sie das Fenster wird immer aktualisiert, und nur wenn Sie "q" drücken, stoppen Sie das Programm – Miki

Antwort

1

Der Unterschied kann in der Dokumentation von OpenCV der waitKey Funktion gefunden werden.

Grundsätzlich wartet die Funktion waitKey auf das Drücken einer Taste, und das Argument ist die Zeit, die gewartet wird. Also, wenn Sie 10 verwenden. Es wird 10 Millisekunden warten und dann mit dem Programm fortfahren.

Die Dokumentation sagt:

0 der besondere Wert ist, die „für immer“

So bedeutet, wenn Sie 0. Das Programm wartet darauf, Schlüssel für immer gedrückt werden ... Durch Drücken einer beliebigen Taste wird das Programm fortgesetzt ... (auch das Schließen des Fensters wird es tun)

Ich empfehle 10 zu verwenden, wenn Sie einen Strom von Bildern (vielleicht von einer Kamera) machen. Und verwenden Sie 0, wenn Sie menschliche Interaktion erwarten, damit das Programm fortgesetzt wird. Und einen größeren Wert, wenn Sie es für genügend Zeit sehen möchten, aber das Programm ohne jegliche Interaktion fortsetzen.

+0

@Dilz wenn Sie die Antwort mögen und denken, dass es Ihre Frage löst, akzeptieren Sie es, um andere Leute wissen zu lassen. – api55

Verwandte Themen