0

ビットマップをopencvイメージに変換しようとしています.Bitmap.Scan0を送信してpinvokeを使用しています.アンマネージ側では、バイト配列を使用してiplimageを作成しています.解決策はうまくいくようですが、常にではありません! グラフィック デバイスを使用して自分の PC で画像を作成したが、別のデバイスでは失敗した場合にのみ、画像の色が正しくないようで、画像がずれている場合にのみ、ビットマップを 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 に答える