Compiz + webcam = spettacolo! [video + guida]

di

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:

Compiz headtrack plugin

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

About these ads

Tag: , , , , , , , , , , , , , , , , ,

3 Risposte to “Compiz + webcam = spettacolo! [video + guida]”

  1. Nimble Numpty Says:

    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 );

  2. Martin Larsen Says:

    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?

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...


Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

%d blogger cliccano Mi Piace per questo: