我正在尝试将位图转换为opencv图像我通过发送Bitmap.Scan0使用pinvoke而在非托管端我通过使用字节数组创建iplimage解决方案似乎工作但不总是!只有当我使用我的grahpic设备在我的电脑上创建图像但它在另一个上失败时,图像颜色似乎不正确并且图像被移动我怀疑我应该将位图转移到DIB怎么能这样做?
IplImage* image= cvCreateImage(cvSize(width,height),depth,3)
memcpy(image->imageData,(uchar*)(bitmap),width*height*3);
答案 0 :(得分:0)
IplImage
以 BGR 顺序存储像素,而HBITMAP
期望它们为RGB。
Luckely,对你而言,整个IplImage
可以通过以下方式从BGR转换为RGB:
cvCvtColor(image, image, CV_BGR2RGB);