Projet

Général

Profil

AbulEduCameraV1

La classe AbulEduCameraV1 permet de capturer les images provenant d'une caméra (webcam)

Installation

L'installation de la classe AbulEduCameraV1 se fait dans le dossier lib de votre logiciel, par exemple

git submodule add http://redmine.abuledu.org/ryxeo/leterrier-developpeurs/abuleducamerav1.git src/lib/abuleducamerav1

Mainteneur de la lib:

git clone ssh://gitolite3@redmine.abuledu.org/repositories-redmine/ryxeo/leterrier-developpeurs/abuleducamerav1.git

Cette classe nécessite l'utilisation de opencv2

Modification du fichier.pro

Pensez à modifier votre fichier .pro pour ajouter cette nouvelle lib

#AbulEduCameraV1
include(lib/abuleducamera/abuleducamera.pri)

Utilisation

La capture des images par la webcam se fait dans un thread séparé lancé par la classe AbulEduCameraControllerV1, on ne s'en soucie donc pas ;-)
Une implémentation minimum possible est celle-ci :

// A utiliser dans la classe appelante
    if(!m_camera)
    {
       m_camera = new AbulEduCameraV1(this);
       connect(m_camera, SIGNAL(signalFullImageReady(QImage)), this, SLOT(slotQImageFromCamReceived(QImage)));
       m_camera->abeCameraInitCamera(0);
       m_camera->abeCameraStartCapture();
    }

void UtilitaireMainWindow::slotQImageFromCamReceived(QImage image)
{
    ui->lbCameraView->setPixmap(QPixmap::fromImage(image).scaled(ui->lbCameraView->size(),Qt::KeepAspectRatio));
    m_camera->slotCameraControllerReadyToGetNewImage(true);
}

Plus loin, la capture sera lancée en faisant un simple :

    m_camera->abeCameraStartCapture();

De même, pour arrêter la caméra, on fera :

    m_camera->abeCameraStopCapture();

(!) Il est nécessaire de dire au contrôleur de la caméra que l'on est prêt à recevoir une nouvelle image. Ceci évite de recevoir trop d'images qui ne pourront être traitées, et de surcharger le processeur.

    m_camera->slotCameraControllerReadyToGetNewImage(true);

(!) Cette classe est encore en développement...

Démo

Le fichier ci-dessous est un exemple d'utilisation des classes AbulEduCameraV1 et AbulEduCameraWidgetV1

20150531_camera.tar.gz - Demo d'utilisation des classes AbulEduCameraV1 et AbulEduCamraWidgetV1 (6,74 Mo) Jean-Louis, 31/05/2015 16:57

Redmine Appliance - Powered by TurnKey Linux