Touchlib est une librairie sous licence BSD qui permet de créer des interfaces tactiles multitouch avec une simple webcam (comme dans cette vidéo, ou encore la table tactile surface de Microsoft). L'ennui, c'est que pour l'instant, il n'y a pas de paquet pour ubuntu donc il va falloir compiler.
Installez les bibliothèques nécessaires à la compilation : libxmu-dev libxmu-headers libxmuu-dev libxpm-dev libxtrap-dev libxtst-dev libxv-dev xlibs-dev fftw-dev fftw2 glutg3 libalut-dev libalut0 libg2c0 libglui-dev libglui2c2 freeglut3-dev glutg3-dev libgle3 libgle3-dev libglew-dev libglew1 libglitz-glx1 libglitz-glx1-dev libglitz1 libglitz1-dev libglut3-dev libsage-dev libsage0 libxt-dev libcv-dev libcv1 libcvaux-dev libcvaux1 libhighgui-dev libhighgui1
Récupérez les sources :
svn co http://touchlib.googlecode.com/svn/trunk/ multitouch
Ensuite lancez la commande :
cmake .
S'il vous manque une dépendance (dans ce cas OpenGL par exemple), il y aura une ligne de ce genre
OpenGL not found - some applications may not be built
Installez-la puis relancez la commande. Une fois qu'il n'y aura plus d'erreur tapez :
make
Si la compilation plante et affiche
~/multitouch/src/RectifyFilter.cpp:32: error: ‘printf’ was not declared in this scope make[2]: *** [src/CMakeFiles/touchlib.dir/RectifyFilter.o] Erreur 1 make[1]: *** [src/CMakeFiles/touchlib.dir/all] Erreur 2 make: *** [all] Erreur 2
Pas de panique, c'est normal . Éditez le fichier
gedit ~/multitouch/src/RectifyFilter.cpp
Et rajoutez à la première ligne
#include <stdio.h>
Relancez la compilation. Si ça plante toujours, postez sur le forum
Pour lancer la configuration, tapez
./src/configapp
Vous aurez toute une série de fenêtres qui s'ouvriront. Pour voir comment les configurer, allez (en) ici
Il y a des démos disponibles dans le fichier demos. Vous pouvez maintenant vous amuser. Par exemple pour lancer l'application smoke via la commande suivante :
./multitouch/demos/smoke/smoke
Si vous avez ce genre de message quand vous lancez ./src/configapp
VIDIOC_QUERYCTRL: Erreur d'entrée/sortie HIGHGUI ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV Unable to stop the stream.: Mauvais descripteur de fichier HIGHGUI ERROR: V4L: Pixel format of incoming image is unsupported by OpenCV
Il semblerait que ce soit dû à une incompatibilité entre v4l2 et OpenCV. Allez voir sur ce topic pour trouver la solution
Contributeurs principaux : samuncle.
Basé sur Installing Touchlib on Ubuntu