Magazine

StereoVisione con OpenCV, QT4, openGL

Creato il 22 settembre 2011 da Roccoagostino @RockyTemerario
StereoVisione con OpenCV, QT4, openGLStereoVisione con OpenCV, QT4, openGLStereoVisione con OpenCV, QT4, openGL

La Stereovisione o StereoscopiaW è una tecnica di realizzazione e visione di immagini, disegni, fotografie e filmati, finalizzata a trasmettere una illusione di tridimensionalità, analoga a quella generata dalla visione binoculare del sistema visivo umano. La visione stereoscopica consente di inferire la struttura tridimensionale di una scena osservata da due o piu’ telecamere (nel caso di due telecamere si parla di visione binoculare).

Il principio alla basa della visione stereoscopica, noto sin dal rinascimento, consiste in una triangolazione mirata a mettere in relazione la proiezione di un punto della scena sui due (o più) piani immagine delle telecamere (e.g. tali punti sono denominati punti omologhi) che compongono il sistema di visione stereoscopico (stereo rig). L’individuazione dei punti omologhi, problema noto in letteratura come il problema della corrispondenza (correspondence problem o matching stereo), consente di ottenere una grandezza denominata disparità (disparity) mediante la quale, conoscendo opportuni parametri del sistema stereoscopico, è possibile risalire alla posizione 3D del punto considerato.

 

Se volete approfondire l’argomento in maniera esaustiva vi consiglio di iniziare a leggere l’articolo di Stefano Mattoccia.

 

Partendo dal codice dove catturavo il flusso video da una sola webcam per visualizzarlo su una “label”, questa volta ho cercato di catturare il flusso video da due webcam e visualizzarle contemporaneamente sullo schermo. Per una maggiore fluidità nel refresh delle immagini (almeno 30 frame al secondo) ho usato le librerie opengl. Unico accorgimento: non collegare le due webcam sullo stesso canale USB (hub USB).

 

Ambiente di programmazione:

  • C++ basato sul tool MINGW
  • framework QT 4.7.4
  • IDE QTcreator 2.3
  • librerie OpenCV 2.3.1

 

Ringrazio Walter Lucetti che mi ha evitato ore ed ore di studio per utilizzare le opengl in ambiente QT4.

 

StereoVisione con OpenCV, QT4, openGL

Le webcam utilizzate

 

 

Il programma in esecuzione

 

Ed ecco il codice:
Note: There is a file embedded within this post, please visit this post to download the file.
ovviamente dovete cambiare il percorso delle lib e degli include relative a OpenCV.
Enjoy it!


Ritornare alla prima pagina di Logo Paperblog