[Jderobot] Opencv para Ruby

Roberto Calvo rocapal en gsyc.urjc.es
Sab Mar 29 14:06:47 CET 2014


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

-- 
Roberto Calvo Palomino        | Robotics Lab (GSyC) 
R&D Android Mobile Engineer   | Universidad Rey Juan Carlos

Twitter: @rocapal 
Linkedin: http://www.linkedin.com/in/rocapal



More information about the Jde-developers mailing list