可以从 OpenNI Image Meta Data 获得的图像被排列为 RGB 图像。我想将其转换为 OpenCV IplImage,默认情况下假定数据存储为 BGR。我使用以下代码:
XnUInt8 * pImage = new XnUInt8 [640*480*3];
memcpy(pImage,imageMD.Data(),640*480*3*sizeof(XnUInt8));
XnUInt8 temp;
for(size_t row=0; row<480; row++){
for(size_t col=0;col<3*640; col+=3){
size_t index = row*3*640+col;
temp = pImage[index];
pImage[index] = pImage[index+2];
pImage[index+2] = temp;
}
}
img->imageData = (char*) pImage;
在 C/C++ 中执行此转换以使 RGB 图像变为 BGR(IplImage 格式)的最佳方法(最快)是什么?