我正在尝试将位图转换为opencv映像,我通过发送Bitmap.Scan0来使用pinvoke,而在非托管端,我正在使用字节数组创建iplimage,解决方案似乎是有效的,但并不总是有效的!只有当我用我的抓拍设备在我的电脑上创建图像,但它在另一个设备上失败,图像颜色似乎不正确,图像被移动,我怀疑我应该把位图转移到DIB,这是怎么做到的?
IplImage* image= cvCreateImage(cvSize(width,height),depth,3)
memcpy(image->imageData,(uchar*)(bitmap),width*height*3);发布于 2012-11-28 02:55:16
IplImage以BGR顺序存储像素,而HBITMAP则希望它们是RGB。
幸运的是,对于您来说,整个IplImage可以通过以下方式从BGR转换为RGB:
cvCvtColor(image, image, CV_BGR2RGB);https://stackoverflow.com/questions/13587916
复制相似问题