Seguimiento de un punto láser

Hace algún tiempo subí a YouTube un video en el que muestro una primer versión de una aplicación que realicé de seguimiento de un puntero láser:

El algoritmo es sencillo:

  1. Captura imagen
  2. Separa las componentes
  3. Busca el pixel de mayor valor en la componente roja

A pesar de la sencillez del algoritmo, funciona bastante bien bajo ciertas condiciones de iluminación. Hay varias formas de mejorarlo, ¿cuáles se les ocurren?

6 comentarios en “Seguimiento de un punto láser”

  1. Hola…

    Si el fondo es fijo se podría eliminar, por ejemplo estableciendo el fondo al inicio y luego restar a cada frame el fondo guardado; para adaptarse a cambios lentos de iluminación se podría calcular el fondo con la media de los frames, sumando al fondo un porcentaje del frame actual y restando al resultado el mismo pocentaje del fondo o algo así…

    Siempre actuando solo en el canal rojo.

    Para aumentar velocidad se podría buscar primero en los alrededores de la última posición detectada… o quizás usar algún algoritmo de predicción tipo Kalman o algo así… algo como un control PID pero aplicado a predicción de la próxima posición del punto rojo.

    Que opinas?

    Si se me ocurre algo más ya iré contando, estas historias me encantan… 🙂

  2. La intención en un principio es no hacer uso de fondo fijo, pero si es fijo con esa resta se simplifica el proceso y, aún más importante, tiene gran rendimiento :).

    Me gusta la idea de adaptación para cmabios de iluminación, la otra, sobre ajustar la región de interés también, se conseguiría reducir enormemente el tiempo de procesamiento, sobretodo pensando en la implementación de opciones más robustas como el filtro de Kalman, que sería por la que me decantaría :).

  3. Estaba pensando que si el laser fuera comandado por el PC se podrían hacer cosas interesantes, por ejemplo:

    Encender el laser y captar un frame
    Apagar el laser y captar un frame
    Restar los frames

    Si la cámara tiene una buena velocidad de refresco esto se podría hacer lo suficientemente rápido como para que el laser no parpadee… no sé… quizás no sea tan facil, pero algún tipo de “codificación” de la luz laser podría ser interesante.

  4. En el prototipo final el láser es controlado desde la computadora :).
    Hice pruebas de ese tipo utilizando un láser de línea y el resultado es muy bueno, permite hallar muy facilmente la línea. Aunque consideré que podía ser lento encender y apagar el láser y no lo implementé, pero debí probar y medir tiempos, a ver si lo pruebo en un tiempo libre :).

  5. Saludos soy de Venezuela, me puedes pr favor compartir esos codigos para hacer unas practicas de laboratorio? muchas gracias de antemano

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *