Qt und WebCam

Alles rund um die Programmierung mit Qt
Antworten
Quine
Beiträge: 3
Registriert: 6. April 2006 10:59

Qt und WebCam

Beitrag von Quine »

Hallo Forum,

zur Zeit schreibe ich an meiner Studienarbeit, für die ich gerne Qt verwenden möchte, das ein Kamerabild einer Webcam anzeigen soll. Als Zugriff auf die Webcam verwende ich zu Zeit DsVideoLib, das liefert mir die Daten dann als unsigned char*. Doch wie zeige ich das Bild permanent an, also wie lese ich permanent aus diesem Array aus und schreibe es in ein QImage?

Gibt es noch andere Möglichkeiten komfortabel an ein Kamerabild zu kommen?

Viele Dank schonmal für die Mühen!

Quine

mein bisheriger Versuch (nur der interessante Ausschnitt) sah so aus (ist mein allererster QT-Code *duck*):
QApplication *app = new QApplication(argc, argv);

QImage *image = new QImage();
image->loadFromData(camera1->getFrame(),(320*240),0);

QPixmap *pixm = new QPixmap();
pixm->fromImage(*image,0);

QWidget *widget = new QWidget();
QLabel *label = new QLabel("label", widget, 0);
label->setPixmap(*pixm);
label->show();
widget->show();

return app->exec();
goofy
Beiträge: 38
Registriert: 4. April 2006 15:40

Beitrag von goofy »

Hallo,

das QImage brauchst gar nicht unbedingt, du kannst bei QPixmag
auch direkt sagen loadFromData().

komfortabel ein Kamerabild ist dies Möglichkeit eigentlich schon ...

zum Anzeigen würde ich paintEvent() überschreiben, diese wird
immer bei repaint() aufgerufen.
Dann kannst du immer wenn du ein neues bild hast repaint() aufrufen und es wird angezeigt.

Code: Alles auswählen

void paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    QPixmap pic;
    pic.loadFromData(camera1->getFrame(),(320*240),0);

    painter.drawPixmap(0, 0,  pic);
}
Hab auch schon gelesen, dass es mit OpenGL klassen von Qt auch gemacht werden kann und sogar besser sei.
Setzt aber voraus, dass man sich mit OpenGL auskennt.

grüße
goofy
Antworten