Sistema de Visión
Una vez tenemos el proxy al módulo de NaoCam podemos llamar a sus métodos.
Primero registraremos los parámetros en la cámara, ajustando la resolución, el tipo de imagen que queremos obtener y el refresco. En nuestro caso obtendremos la imagen en RGB en formato VGA (640 x 480) con 5fps de refresco.
|
gvm_fname = camera_proxy->call<std::string>(“register”, gvm_fname, |
Luego seleccionaremos la cámara que queramos usar, en nuestro caso usaremos una variable que modificamos con el interfaz gráfico para elegir entre la cámara frontal o la que apunta al suelo.
|
camera_proxy->callVoid(“setParam”, kCameraSelectID, camera_selection); |
Una vez configurada podremos coger la imagen de la cámara, usaremos el método getImageRemote en una llamada al proxy para obtener una imagen del tipo ALValue.
|
AL::ALValue lastImage; |
Antes de mostrar la imagen en el interfaz realizamos alguna prueba para verificar que la obteniamos correctamente. Sacamos de la imagen los datos que la definían (alto, ancho, número de capas (al ser rgb son 3), el tipo de imagen y el tamaño) y los imprimimos por la salida estándar (consola).

También nos creamos un fichero .ppm donde la guardabamos para poder comprobar con un editor de imagen que los colores son iguales.
Después de comprobar que lo hacía correctamente la mostramos por el interfaz. Tendremos que crearnos una variable del tipo wxImage y la pintaremos pixel por pixel con los componentes rgb leidos.
|
wxImage *image; |
Una vez tengamos la imagen tendremos que mostrarla por el interfaz, usaremos un cliente dc para ello.
|
wxBitmap bitmap1(*image); |
Al pintar la imagen pixel por pixel y tener los componentes RGB separados nos permite mostrarlos individualmente. En nuestro programa mostraremos los 3 y la imagen completa.

