Konvertieren Sie Bitmap-Matte

Muss ich konvertieren Gdiplus::Bitmap-cv::Map-format.
Ich bin mit diesem code, um dies zu tun:

Gdiplus::Bitmap* enhanced = ...; //some Bitmap
Gdiplus::BitmapData bmp_data = {};
Gdiplus::Rect rect(0, 0, enhanced->GetWidth(), enhanced->GetHeight());

enhanced->LockBits(&rect, Gdiplus::ImageLockModeRead, enhanced->GetPixelFormat(), &bmp_data);

Mat imageMap(enhanced->GetHeight(), enhanced->GetWidth(), CV_8UC3, bmp_data.Scan0, std::abs(bmp_data.Stride)); //construct Map from Bitmap data. The problem is probably here

cvNamedWindow("w", 1);
cvShowImage("w", &imageMap); //runtime error (access violation)
cvWaitKey(0);

Habe ich einen runtime error, wie imageMap war nicht richtig ausgebildet ist. Was mache ich hier falsch? Ich werde dankbar für Ihre Erklärung.

  • pleaase vermeiden, die alten c-api-Funktionen verwenden: cv::imshow("w", imageMap) statt
  • was ist das pixel-format zurückgegeben von GetPixelFormat?
  • zu @berak: Es war das problem! bitte, stellen Sie es auf eine Antwort. Ich werde es akzeptieren.
InformationsquelleAutor Ann Orlova | 2014-07-09
Schreibe einen Kommentar