8/28/2013

OpenCV Mat Data point access and memcpy to another Mat, example source code

This is example source code.

-----
Mat inImg = imread("Penguins.jpg",0);
//Data point copy
unsigned char * pData = inImg.data;
 
int width = inImg.rows;
int height = inImg.cols;
//gray color value reverse
for(int i=0; i < width; ++i)
{
  for(int j=0; j < height; ++j)
  {
   pData[j*width+i] = 255-pData[j*width+i];
  }
}
//create another Mat same size, type with inImg
Mat outImg(width, height, CV_8UC1);
//data copy using memcpy function
memcpy(outImg.data, pData, sizeof(unsigned char)*width*height);
 
//processing and copy check
namedWindow("Test");
imshow("Test", inImg);

namedWindow("Test2");
imshow("Test2", outImg);

cvWaitKey(0);
-----

Thank you.

No comments:

Post a Comment