[PD-dev] opencv rgba/gray output

Loic Kessous loic.kessous at gmail.com
Mon Feb 23 20:35:31 CET 2009


Hi,

I try to develop some code in opencv in the pix_opencv's style. To  
start, I tried to convert rgba to gray using opencv ( cvCvtColor(orig,  
gray, CV_BGRA2GRAY); )

but I can't get a gray picture of the same size at the output. If I  
just copy the gray image, I get just 4 small gray copy of the original  
on one line on the top of the image.

If I try to convert from grey to rgba before to output the data, I get  
a monochrome but yellow picture.

I wonder if there's a relation with the fact that I am working on a  
mac, is it possible ? because of a difference coding of rgba on mac  
and others?

do someone know how I can solve this?

here is the code of the one which give me a yellow monochromatic  
picture:

///////////////// processImage /////////////////////////
void pix_opencv_mytest :: processRGBAImage(imageStruct &image) {
   if ((this->comp_xsize!=image.xsize)||(this->comp_ysize! 
=image.ysize)||(!orig)) {
	this->comp_xsize = image.xsize; 	this->comp_ysize = image.ysize;

	cvReleaseImage(&orig);			cvReleaseImage(&gray);		 
cvReleaseImage(&bob);		   	

		//create the orig image with new size
         orig = cvCreateImage(cvSize(image.xsize,image.ysize),  
IPL_DEPTH_8U, 4);
     	gray = cvCreateImage(cvSize(orig->width,orig->height),  
IPL_DEPTH_8U, 1);
			
     }
     // Here we make a copy of the pixel data from image to orig- 
 >imageData, orig is a IplImage struct
	    memcpy( orig->imageData, image.data, image.xsize*image.ysize*4 );
		cvCvtColor(orig, gray, CV_BGRA2GRAY);  // Convert to grayscale		
	
	cvCvtColor(gray, orig, CV_GRAY2BGRA);
     //copy back the processed frame to image
     memcpy( image.data, orig->imageData, image.xsize*image.ysize*4 );

}


thanks,
loic




More information about the Pd-dev mailing list