Webcam mit OpenCV und QThread funktioniert nicht
Verfasst: 6. Januar 2011 13:14
Hallo. Ich möchte mir mit OpenCV mehrere Webcams anzeigen lassen. Wenn ich das so mache, wie hier in dem einen Tutorial gut erklärt, funktioniert das auch wunderbar. Wenn ich das ganze allerdings nicht mit dem QTimer, sondern mit einem QThread umsetzen will, funktioniert es nicht. Ich bastel da jetzt schon seit einigen Tagen dran herum und komme nicht weiter. Vielleicht hat ja noch jemand eine Idee von euch. Hier mal der Quelltext meiner run-Methode:
Ich hoffe, es kann mir noch jemand weiterhelfen.
Code: Alles auswählen
void Camera::run() {
const int sourceID = 0;
//this->capture ist in der header initialisiert: CvCapture *capture
this->capture = cvCaptureFromCAM(sourceID);
this->pixmapItem = new QGraphicsPixmapItem(this->pixmap);
this->addItem(this->pixmapItem);
while(true) {
this->ipImage = cvQueryFrame(this->capture); // Frame auslesen
if (this->ipImage) //hier ist der Fehler, weil this->ipImage irgendwie immer NULL bleibt
this->pixmap = QPixmap::fromImage(mirrorImage(convertImage(this->ipImage)));
this->pixmap = this->pixmap.scaled(this->width(), this->height());
this->pixmapItem->setPixmap(this->pixmap);
this->update();
this->msleep(1000);
}
}