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イベントで監視してその間は貼り付けないようにすべき。それでもごくたまに落ちる。