[Jderobot] [Jderobot-dev] Duda sobre CameraServer y el modo de servir imágenes
Oscar Garcia
oscar.robotica en linaresdigital.com
Dom Jul 21 21:20:51 CEST 2013
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.
More information about the Jde-developers
mailing list