[View]  [Edit]  [Lock]  [References]  [Attachments]  [History]  [Home]  [Changes]  [Search]  [Help] 

Touchlib

Objetivo


¿Que es touchlib?

Es una librería que sirve para interactuar con superficies multitouching (basadas en FTIR). La librería esta basada mayormente en OpenCV.
La arquitectura es simple, se trata de una UNICA instancia de TouchScreen (ITouchScreen), la que puede ser conectada a un EventListener que atenderá los eventos que se generan a partir de la detección de manchas(blobs).
La detección se basa en una batería de filtros en serie que se aplican a la imagen de entrada y producen una imagen de las manchas en cada cuadro capturado, luego estas manchas son seguidas(tracking) para generar eventos básicos (down/update=move/up) de manchas con un identificador(id).
Soporta la mayoría de las webcams del mercado y el tracking a partir de un archivo AVI.

Soporta los siguientes eventos:

Interfaz para Visual Smalltalk

La librería ToucLib exporta funciones mangleadas, es decir, funciones C++, las que no pueden ser usadas (sin sobresaltos) por medio de una interfaz API standard. Para evitar esta limitación impuesta por estar la librería implementada en C++; se implementó una librería en C que actuaría de wrapper exponiendo una interfaz API standard (standard calls y nombres limpios para las funciones).
Luego de escribir el wrapper, compilarlo y generar la DLL, este funcionó solo parcialmente, debido a que las llamadas desde C a C++ generaban errores en tiempo de ejecución.
Bajo la sospecha de que sería un problema dado por el linking de la touchlib.lib pedí en el foro una versión compilada; pero esto solo llevó el problema un poco mas adentro; ahora solo algunas funciones fallaban! :-(

Frente a este problema, y observando la incomodidad que sería implementar lo mismo en Visual Smalltalk en esta etapa; generé una DLL wrapper, teniendo linkeada la librería de forma estática. Esto es menos conveniente, pues en caso de haber una nueva versión de la librería, debería compilarse nuevamente...
Esta alternativa si funcionó completamente, confirmando que el error era interno y asociado a la forma en que estaba compilada la librería.

Una vez funcionando e implementadas las prestaciones básicas necesarias para hacer una aplicación, ya es posible trabajar con la librería en Visual Smalltalk y no perder mas tiempo usando herramientas de bajo nivel.

Links

Página principalhttp://www.whitenoiseaudio.com/touchlib/
Foro TouchLibhttp://nuigroup.com/forums/viewforum/27/
Aplicacioneshttp://nuigroup.com/forums/viewthread/410/
Instalaciónhttp://nuigroup.com/forums/viewthread/48/

Primeros Ensayos

Downloads

stTouchLib.zip 3.8Mb
07-ene-2008
TouchLib wrapper para Visual Smalltalk.
- incluye carpeta del proyecto y cambios a los fuentes de TouchLib.
- módulo basado en callbacks que permite implementar filtros en Smalltalk (lo que nos permitiría realizar cambios sin recompilar la librería, entre otras cosas).
- estructura de TouchData (pasado como argumento en eventos de tracking).
- Framework básico de aplicación (con Calibración).
- Patch para tracking correcto de ángulo, área, etc de TouchData.
Escribir a Ale para usar la última versión de los fuentes.
touchlib-src-20070627.zipFuentes de la librería con los binarios incluidos.