Signore e signori, il futuro si avvicina… chi di voi non ha mai sognato una cosa del genere?
Quello che avete visto è frutto della combinazione (aka COMBO) di Compiz Fusion e di una semplice webcam compatibile con il progetto OpenCV, condita con un po’ di pene dell’inferno per compilare OpenCV da terminale.
Premessa
Questa guida, il software utilizzato ed i plugin che andrete ad installare sono sperimentali ed instabili. Quello che vi consiglio e di non proseguire nel caso non sappiate quello che state facendo per evitare così di ritrovarvi un sistema compromesso… io ve l’ho detto!
Preliminari
Controllate se la vostra webcam è presente nel seguente elenco: compatibilità webcam. Se è presente potete continuare, altrimenti potreste comunque proseguire e controllare se il plugin funziona comunque con la vostra cam. (e ovviamente segnalarla agli sviluppatori di OpenCV!)
Iniziamo a vedere cosa serve per avere questa meraviglia funzionante:
sudo apt-get install build-essential subversion git-core libtool compiz-dev libcompizconfig0-dev libgtk2.0-dev libavutil-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev libavutil49 compiz-fusion-bcop
Download OpenCV
Procuratevi l’ultima versione di OpenCV:
svn co https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary/tags/latest_tested_snapshot
Dopo poco dovreste aver scaricato l’ultimo snapshot disponibile.
Installazione OpenCV
Come dalla migliore tradizione:
./configure
make
sudo make install
sudo ldconfig -v
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Se fino a qui non avete avuto problemi di sorta, dovreste aver installato OpenCV correttamente. Passiamo al plugin per Compiz!
Download Plugin
Per scaricare il plugin utilizzate git:
git clone git://anongit.compiz-fusion.org/users/klange/headtracking
Installazione Plugin
Al solito, siamo tradizionali:
cd headtracking
make
sudo make install
se compilando il plugin incappate in questo errore:
facedetect.c: In function ‘headtrackThread’: facedetect.c:264: error: too few arguments to function ‘cvRetrieveFrame’
Scaricate e installate il plugin presente qui.
Risultato ed utilizzo
Ora se aprire il compizconfigsetting-manager (gestore configurazione di Compiz) dovreste avere a disposizione un nuovo plugin nella categoria extras chiamato headtracking:
E se siete fortunati.. mooolto fortunati, una volta attivato dovreste vedere le finestre spostarsi a sinistra/destra a seconda dei vostri movimenti per simulare l’effetto 3D. Buona fortuna!
Fonti:
http://opencv.willowgarage.com/wiki/
http://www.ilportalinux.it/content/installare-il-plugin-headtracking-di-compiz-su-linux#
http://forum.compiz-fusion.org/showthread.php?t=7744&page=70
Etichette: cam, compiz, compiz fusion, compiz plugin, guida, head track, headtrack, headtracking, howto, johnny chung lee, linux, plugins, ubuntu, video, webcam, wii, wiimote, wiitrack plugin

febbraio 3, 2010 alle 4:03 pm |
The fix to get the beastie to compile is to change line 264 of facedetect.c from:
frame = cvRetrieveFrame( capture );
to:
frame = cvRetrieveFrame( capture, 0 );
marzo 16, 2010 alle 1:22 am |
When trying to “make” OpenCV it thinks for a long time and then ends with this:
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -DNDEBUG -I../include/opencv -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -O3 -g -march=pentium4 -ffast-math -fomit-frame-pointer -MT lib_highgui_la-cvcap_ffmpeg.lo -MD -MP -MF .deps/lib_highgui_la-cvcap_ffmpeg.Tpo -c highgui/cvcap_ffmpeg.cpp -fPIC -DPIC -o .libs/lib_highgui_la-cvcap_ffmpeg.o
highgui/cvcap_ffmpeg.cpp: In member function ‘virtual IplImage* CvCapture_FFMPEG::retrieveFrame(int)’:
highgui/cvcap_ffmpeg.cpp:578: error: ‘img_convert’ was not declared in this scope
highgui/cvcap_ffmpeg.cpp: In member function ‘virtual bool CvVideoWriter_FFMPEG::writeFrame(const IplImage*)’:
highgui/cvcap_ffmpeg.cpp:1077: error: ‘img_convert’ was not declared in this scope
highgui/cvcap_ffmpeg.cpp: In member function ‘virtual bool CvVideoWriter_FFMPEG::open(const char*, int, double, CvSize, bool)’:
highgui/cvcap_ffmpeg.cpp:1213: warning: ‘AVFormatContext* av_alloc_format_context()’ is deprecated (declared at /usr/include/libavformat/avformat.h:873)
highgui/cvcap_ffmpeg.cpp:1213: warning: ‘AVFormatContext* av_alloc_format_context()’ is deprecated (declared at /usr/include/libavformat/avformat.h:873)
make[2]: *** [lib_highgui_la-cvcap_ffmpeg.lo] Error 1
make[2]: Leaving directory `/home/konsolkongen/Desktop/latest_tested_snapshot/opencv/src’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/konsolkongen/Desktop/latest_tested_snapshot/opencv’
make: *** [all] Error 2
What could be wrong here?
marzo 16, 2010 alle 1:28 am |
Try with this links where they’re discussing about the same problem:
http://ubuntuforums.org/archive/index.php/t-1076793.html
https://bugs.launchpad.net/ubuntu/+source/opencv/+bug/311188
Cya