CvImageからBitmapへの変換
highgui使いたくないので、OpenCVで画像処理して結果は.NETに持ってこよう。
public Bitmap cvImageToBitmap(CvImage img) { return new Bitmap(img.Size.width, img.Size.height, img.Size.width * 3, PixelFormat.Format24bppRgb, img.getPixelAddr(0, 0, 0)); }
3年以上前に匿名様にコメントで教えてもらった方法。
http://shokai.org/blog/archives/829
基本うまくいくけど、PictureBox等に貼り付ける場合PictureBoxのサイズが変更されるタイミングかなんなのか、とにかくサイズ変更しているとたまにメモリリークして落ちる。SizeChangedイベントで監視してその間は貼り付けないようにすべき。それでもごくたまに落ちる。