Frameworks y herramientas: OpenCV, CImg y ROOT

Frameworks multiplataforma para el detector CCD

Accesibilidad: Alt+P para escuchar o pausar, Alt+S para detener.

El software del detector necesita comunicarse con el mayor número de cámaras y plataformas posibles. Podríamos usar APIs específicas de cada sistema (Video4Linux, Windows Media, QuickTime…), pero añadiríamos incompatibilidades. En su lugar usamos dos librerías multiplataforma que cubren todo el flujo: OpenCV para la captura y CImg para el análisis.


OpenCV — Captura de cámara

OpenCV es un toolkit de visión por computador desarrollado originalmente por Intel. Soporta cámaras USB, FireWire, IP y prácticamente todos los fabricantes del mercado. Funciona en iOS, macOS, Windows, Windows Phone, Android, Java, Python y C++.

Instalación en Linux

# Debian/Ubuntu
sudo apt-get install opencv-dev

# RedHat/CentOS/Fedora
yum install opencv-devel

Instalación en Mac

# Con Homebrew (recomendado)
brew tap homebrew/science
brew install opencv

# Con MacPorts
sudo port install opencv

Instalación en Windows

Recomendamos Cygwin, que recrea un entorno Unix completo sobre Windows incluyendo compiladores y utilidades de desarrollo. Una vez instalado Cygwin, el proceso es equivalente al de Linux Debian.

Instalación en iOS

Sigue las instrucciones de la documentación oficial de OpenCV para iOS.

Instalación en Android

Sigue los pasos de la página oficial de OpenCV para Android.


CImg — Análisis de imagen píxel a píxel

CImg es una robusta librería escrita en un único fichero de cabecera C++ (CImg.h). No requiere compilación previa ni dependencias adicionales — simplemente se incluye en el proyecto.

Sus ventajas para este proyecto:

  • Opera frame a frame, píxel a píxel, sin compresión ni postprocesado
  • Permite escribir álgebra de píxeles de forma vectorial (media, desviación, dilatación…)
  • Compatible con Android mediante el NDK y con iOS de forma nativa en C++

Instalación en Linux

# Debian/Ubuntu
sudo apt-get install cimg-dev

# RedHat/CentOS/Fedora
yum install cimg-devel

Instalación en Mac

# Con Homebrew
brew install cimg

# Con MacPorts
sudo port install cimg

Instalación en Windows

Igual que con OpenCV, recomendamos Cygwin para disponer de un entorno Unix completo.

Instalación en iOS

Añade el fichero CImg.h directamente a tu proyecto en Xcode. La librería se compila junto con el código del proyecto sin ningún paso adicional.

Instalación en Android

Sigue el proyecto cimg-android en GitHub que incluye las instrucciones para usar CImg con el NDK de Android.


ROOT — Herramienta de análisis de físicos de partículas

ROOT es la herramienta estándar del CERN para análisis estadístico, manejo de histogramas y representación de datos. Es muy potente pero su disponibilidad multiplataforma es más limitada que OpenCV y CImg — en particular, no está disponible para iOS y Android.

En este proyecto, las operaciones de histograma que ROOT realizaría se implementan directamente con CImg para mantener la compatibilidad móvil. Sin embargo, ROOT es una referencia indispensable si quieres profundizar en el análisis de física de partículas: sus herramientas matemáticas acumulan décadas de desarrollo en centros como el CERN y representan una capacidad de transferencia tecnológica de primer orden.


Con las dependencias instaladas, compila los programas del detector en El software del detector y consulta Procesado de la señal para entender el algoritmo de identificación de hits.

¿Dudas, correcciones o algo que añadir? Los comentarios están abiertos.

Comentarios