Tag Archive for 'video'

Kickstart a Gstreamer, un simple programita

#include <gst/gst.h>
int main (int   argc, char *argv[]){
  const gchar *nano_str;
  guint major, minor, micro, nano;
  gst_init (&argc, &argv);
  gst_version (&major, &minor, &micro, &nano);

  if (nano == 1)
    nano_str = "(CVS)";
  else if (nano == 2)
    nano_str = "(Prerelease)";
  else
    nano_str = "";
  printf ("Hola, yo se usar: GStreamer %d.%d.%d %s\n",
          major, minor, micro, nano_str);
  return 0;
}

Y compilas con

g++ `pkg-config --cflags --libs gstreamer-0.10` -o Hola Hola.cpp

Eso te dará como resultado un programa que dice

Hola, yo se usar: GStreamer 0.10.18

O la versión que uses. Luego de eso te das una vuelta y maldices a la gente de Phonon, porque teniendo algo tan completo y organizado como Gstreamer han decidido rehacer la rueda. El OSS en el pecado lleva la penitencia.

La competencia: 3D Camera

¿Cuales son los principios básicos?

Estoy 90% seguro que esa es una cámara firewire o tal vez USB2.0 que manda datos en bruto (sin comprimir o tal vez en Bayer) a digamos unos 60 cuadros por segundo, de los cuales solo son útiles 30. Ademas de tener un arreglo de LED’s IR que prende en solo en los frames pares.

Los frames impares son los que se usan para video normal, los pares son usados para detectar la profundidad usando la ayuda del infrarrojo.

¿Como detectar la profundidad?

El IR es reflejado por objetos cercanos, y los objetos lejanos no alcanzan a recibir suficiente iluminacion IR. Es como prender una vela en la oscuridad, sólo puedes ver tu rostro y las cosas cercanas a la vela.

Finalmente

Usando las cosas a la par se puede sacar doble provecho de una cámara, es como tener 2 cámaras en una. Ojala tuviera una cámara con disparador manual. ¿Alguien me quiere regalar una Unibrain?

Im too sexy

Im too sexy for my... (nvidia 280 GTX)

Nvidia 7300 gs vs 280 GTX

Tu propio YouTube

Ultimamente con el Abel salio y proyecto para hacer un sitio similar a YouTube, pero para un mercado nicho. Y como es algo decente no se puede simplemente pegar videos en YouTube y hacer embed en la página, eso se vería muy chafa. Entonces hay que hacer un YouTube para que sea completamente personalizable y que se puedan subir videos en masa, pero de plano, en masa de manera automatizada.

Aqui un demo.

Es algo simple pues es de las primeras pruebas. Pero cuando esto funcione, va a ser un YouTube-sito!!!

Casi listo!! Reconstruyendo 3D con una simple Webcam

Esta es una demo usando el nuevo sistema BOF (adios CAMSHIFT). Reconstruyendo el movimiento en 3D usando las matrices de covarianza.

Eso significa que… Ya casi acabo mi super tesis!!!.

Detectando objetos de algun color

Hay que eliminar todo lo que no queremos, como otros objetos, y basura. Ademas se elimina el background y se quita el ruido.

Se usa el modelo de color HSV, y de el unicamente se usa el Hue pues es el que contiene la informacion de color. Se toma un Histograma como muestra del color y se procede a hacer una convolucion, opencv le llama “backproject” del histograma en la imagen completa. De ahi se obtiene un mapa de probilidades es cual es una imagen en escala de grises donde segun lo blanco de un pixel es la probabilidad que sea del color del histograma, mas blanco mas certero.

Entonces se procesa la imagen de probabilidades para encontrar formas, objetos y otras cosas, en principio se tiene un relajo, todo lleno de ruido.

proba_map.PNG

Se aplica umbralizacion para eliminar todos los pixeles debajo del umbral y si se quiere convertir a blanco todos los demas. Luego se hace deteccion de contorno en lo que queda.

proba_map_contornos.PNG

Ahora, podemos hacer ajuste de figuras geometricas y podemos descartar los que no ajusten bien y los que sean demasiado pequeños. Nos queda algo bastante bueno.

proba_map_ajuste_elipse.PNG

Como ven, en esta ultima ya no se tiene un mapa de pixeles de probabilidad, se tiene una elipse vectorial que se pinto directo sobre donde se predice que esta el circulo azul.

Cheburashka

Visiten este video de YouTube para saber mas de Cheburashka