0

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

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

1 回答 1

0

IplImage以BGR顺序存储像素,同时HBITMAP期望它们是 RGB。

幸运的是,对你来说,整体IplImage可以从 BGR 转换为 RGB:

cvCvtColor(image, image, CV_BGR2RGB);
于 2012-11-28T02:55:16.480 回答