質問: gcnew Bitmap(mat.cols, mat.rows, mat.step, System::Drawing::Imaging::PixelFormat::Format32bppRgb, IntPtr(mat.data)); g->DrawImage(bmp, 0, 0, mat.cols, mat.rows); pic->Refresh(); delete g; } ``` 左からBitmapで読み込んでpictureBox1に出力したもの、Matで読み込んでpictureBox2に表示させたもの、Matで読み込んでimshowで表示させたものです。 まずimreadで読み込まれた際になぜか上下左右が反転してしまい、pictureBox2に出力しようとすると画像が崩れてしまいます。 ![![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/817b1fab7166295c18dd813cf3cd7685.png)](f71d220f54b286edb664607c017fb12a.png)
回答: 以下と同じですかね? C++/CLIです。 BitmapをOpenCVのMatに変換するにはどのようにしたらよいのでしょうか。 追記: 手元のVS2015でNuGetからC++/CLIのテンプレで作ったプロジェクトにOpenCvSharpを入れてみましたが、 何故か参照に追加されなかったので手動で (プロジェクトフォルダ)\packages\OpenCvSharp-AnyCPU.2.4.10.20170306\lib\net45\*.dll を追加しました。 あとは普通にコンパイルは通りました。 !イメージ説明 OpenCVには詳しくないので適当な事を言いますが、 Bitmap型も各ピクセルにポインタ経由でアクセス出来ますので、 自分でコンバートすることもできそうかなと思いました。 フォーマットが違うとちょっと面倒くさいですが・・・。 (BitmapはGIFとか読み込むとRGBAにならなかったような気がしたので)