[Jderobot] [Jderobot-dev] Duda sobre CameraServer y el modo de servir imágenes

JoseMaria josemaria.plaza en gmail.com
Lun Jul 22 13:56:58 CEST 2013


Hola Alberto,

sip, tiene toda la pinta de ser lo que dice Oscar, tamaño o formato
(cuantos bytes por píxel...)

Parece que esa cámara sólo entrega fotogramas de tal o cual tamaño y/o
el SDK nativo no permite otra cosa. Lo que sí está en mano del
ArdroneServer es una vez capturada mediante el SDK, coger trozos,
escalarla, etc. para entregarla vía interfaz estandard, con el tamaño y
formato que nos vengan bien. 

Juega con el manejo de ROIs de opencv para recortar, e incluso funciones
de escalado que tiene. Los tamaños originales de 320x240 para la frontal
y 174x144 tienen buena pinta, con esos ya se pueden hacer cosillas de
procesamiento automático de vídeo. De la imagen combinada puede sacar
tranquilamente dos imágenes, una frontal y otra vertical que entrega vía
interfaz Ice, aunque una de ellas tenga un boquete (de donde el SDK
nativo coloca la miniventana de la otra).

Ánimo,

JoseMaria
On Sun, 2013-07-21 at 21:20 +0200, Oscar Garcia wrote:
> El 21/07/13 18:04, Alberto Martin escribió:
> > Para ArDroneServer nos gustaría poder recibir las imágenes por 
> > separado por lo que hice la siguiente modificación en CameraServer 
> > [6], con esto quiero conseguir que en función del modo actual 
> > seleccionado para la cámara CameraServer sirva una imagen o la otra. 
> > Para la imagen frontal todo funciona como antes, se pude ver el 
> > resultado en [7]. Sin embargo para la cámara vertical sucede algo que 
> > no entiendo, podéis ver el resultado en [8].
> > ¿Alguien sabe a qué se debe este resultado?
> > [7] modificado_horinzontal: 
> > http://jderobot.org/store/amartinflorido/uploads/images/2_modifcado_hor.png
> > [8] modificado_vertical: 
> > http://jderobot.org/store/amartinflorido/uploads/images/3_mod_vert.png
> 
> 
> Buenas tardes
> 
> Tiene toda la pinta que la imagen que obtienes no tiene exactamente las 
> medidas que estás poniendo o que, por otro lado, la codificación de bits 
> no es la misma. Eso suele ocurrir cuando el número de puntos que esperas 
> de una línea no coincide con el real que te mandan. O también puede ser 
> porque esperas que un punto tenga un tamaño en bits que luego es diferente.
> 
> En tu caso parece que estás forzando un ancho en puntos que no es 
> correcto (el real).
> 
> Si lo que quieres es recortar la imagen pequeña que hay dentro de la 
> grande la forma en la que lo haces NO ES LA CORRECTA.
> 
> Para recortar una imagen debes usar ROIs (regiones de interés) y no 
> "forzar" el cambio de tamaño como estás haciendo o bien usar el operador 
> asignación (=) tal y como muestro y te pongo enlace a la documentación:
> http://opencv.willowgarage.com/documentation/cpp/core_basic_structures.html#index-7903
> 
> cv::Mat fotograma = (obtienes el fotograma del ardrone);
> cv::Mat recorte = fotograma(cv::Range(0, 0),
>      cv::Range(D1_VERTSTREAM_WIDTH, D1_VERTSTREAM_HEIGHT));
> 
> 
> Un saludo.
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers

-- 
http://gsyc.es/jmplaza 
Universidad Rey Juan Carlos




More information about the Jde-developers mailing list