Iplimage转换的位图产生错误的颜色

时间:2012-11-27 15:49:22

标签: c++ .net opencv

我正在尝试将位图转换为opencv图像我通过发送Bitmap.Scan0使用pinvoke而在非托管端我通过使用字节数组创建iplimage解决方案似乎工作但不总是!只有当我使用我的grahpic设备在我的电脑上创建图像但它在另一个上失败时,图像颜色似乎不正确并且图像被移动我怀疑我应该将位图转移到DIB怎么能这样做?

IplImage* image= cvCreateImage(cvSize(width,height),depth,3)
memcpy(image->imageData,(uchar*)(bitmap),width*height*3);

1 个答案:

答案 0 :(得分:0)

IplImage BGR 顺序存储像素,而HBITMAP期望它们为RGB。

Luckely,对你而言,整个IplImage可以通过以下方式从BGR转换为RGB:

cvCvtColor(image, image, CV_BGR2RGB);