[Jderobot] Opencv para Ruby

Edgar Barrero Mateo ea.barrero en hotmail.com
Mar Abr 1 21:10:11 CEST 2014


Hola a todos,

Al final he esquivado opencv. Entre otras cosas porque no he sido capaz 
de instalarlo :). He conseguido hacer lo mismo con una librería. Se 
llama chunky_png. Ya venía usándola pero no conseguia pasar a png si no 
era recorriendo pixel a pixel. Ahora ya paso el array directamente a 
png. Se ha notado mucho la mejoría. Lo bueno de esta librería es que no 
paso por archivo, creo el png al vuelo y lo transformo en url (todo lo 
hace la librería).
El video de mi web cam me funciona perfectamente con resolución 320 x 
240. La kinect sin embargo se traba, asi que seguiré trabajando en ello.

Un saludo.


On 03/29/2014 04:20 PM, Edgar Barrero Mateo wrote:
> Muchas gracias,
>
> Parece que el problemilla no era tan pequeño y no soy capaz de
> solucionarlo pero en cuanto lo tenga pruebo el código.
>
> Edgar.
>
> On 03/29/2014 02:06 PM, Roberto Calvo wrote:
>> El vie, 28-03-2014 a las 23:06 +0100, Edgar Barrero Mateo escribió:
>>> Hola de nuevo,
>>>
>>> He mirado y si existe opencv para ruby. Lo he instalado y me da un
>>> problemilla pero creo que lo podre solucionar asi que si me podeis pasar
>>> el código para pasar imágenes jpeg os lo agradezco.
>> Genial, eso son buenas noticias Edgar. Te paso el código de openCV en C
>>
>> Para guardar imagen de color de cualquier cameraServer es de la sguiente
>> manera. Asume que colorImage es el cv::Mat que obtienes de tu interface
>> de camera. Si quieres guardar png o jpg, solo tienes que cambiar el
>> nombre del fichero donde lo vas a guardar, opencv se encarga del resto.
>>
>> // Save color image
>> cv::Mat colorImage = cameraServer.getImage();
>>
>> std::string filename = "/tmp/color-image.jpg";
>>
>> cv::cvtColor(colorImage, colorImage, CV_RGB2BGR);
>> imwrite( filenameColor.str(), colorImage );
>>
>>
>> Para guarda la imagen de profundidad es parecido, pero hay que hacer un
>> split de los 3Bytes que tienen (Se envía 3 bytes RGB, pero solo en 1
>> byte esta la información de la imagen en escala de grises)
>>
>> // Save depth image
>>
>> cv::Mat depthImage = cameraServer.getImage();
>> std::string filenameDepth = "/tmp/depth-image.jpg";
>>
>> cv::Mat grayDepth(depthImage.size(),depthImage.type());
>> std::vector<cv::Mat> layers;
>> cv::split(depthImage, layers);
>> cv::cvtColor(layers[0],grayDepth,CV_GRAY2RGB);
>>
>> imwrite( filenameDepth.str(), grayDepth );
>>
>> Seguro que con esto aumentas y mucho los fps de tu streaming!
>>> Muchas gracias.
>>> _______________________________________________
>>> Jde-developers mailing list
>>> Jde-developers en gsyc.es
>>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers



More information about the Jde-developers mailing list