Ich verwende opencv und Qt, um eine Anwendung zu erstellen. In der Anwendung erstelle ich ein kleines Tool, um Videos aufzunehmen. Aus diesem Grund und um den Hauptereignis-Thread nicht zu blockieren, habe ich einen separaten Dialog erstellt, der einen Aufnahme-Thread enthält. In diesem Thread für Starter wollte ich nur die Kamera-Ausgabe sehen (ich habe den Aufnahme-Code noch nicht eingeführt). Also ich subclassed QThread
und die run()
-Funktion ist die folgende:
Das sollte funktionieren, aber das Problem ist, dass wenn der Thread startet, ich einen neuen Dialog "aus heiterem Himmel" bekomme und mich auffordere, die Kamera auszuwählen, wenn ich eine der angeschlossenen Kameras anwähle es tut es nicht. Hier ist der Dialog, den ich bekomme:
Irgendwelche Hilfe, was kann ich tun?
Ich habe bemerkt, dass OpenCV Probleme hat, wenn einige Funktionen nicht vom Hauptthread ausgeführt werden.
Verschieben Sie die Initialisierung der Erfassungsprozedur in den Hauptthread Ihrer Anwendung und belassen Sie den Rest in Ihrem sekundären Thread. Der Initialisierungsteil scheint zu sein:
%Vor%Tags und Links c++ qt opencv windows image-processing