0

皆さんこんにちは、これは私の最初の質問です。

私は OpenCvSharp を使用してソフトウェアを開発しています。明らかに、C# で、このソフトウェアの目標は、メモリを介して動作するビットマップにメディアン ブラー フィルターを適用することです。

コード例:

        using (Bitmap bmpSrc = new Bitmap(@"C:\Users\IPTE40\Desktop\OpenCV\View2.bmp"))
        {
            unsafe
            {
                BitmapData bmpDataSrc = bmpSrc.LockBits(new Rectangle(0, 0, bmpSrc.Width, bmpSrc.Height), ImageLockMode.ReadOnly, bmpSrc.PixelFormat);

                int iNumberOfBytesOriginal = bmpDataSrc.Stride * bmpSrc.Height;
                byte[] byteArrayOriginal = new byte[iNumberOfBytesOriginal];
                System.Runtime.InteropServices.Marshal.Copy(bmpDataSrc.Scan0, byteArrayOriginal, 0, iNumberOfBytesOriginal);
                IntPtr ptrDataSrc = System.Runtime.InteropServices.Marshal.UnsafeAddrOfPinnedArrayElement(byteArrayOriginal, 0);

                Mat matImgSrc = new Mat(ptrDataSrc);
                Mat matImgDst = new Mat();
                Cv2.MedianBlur(matImgSrc, matImgDst, 9);
                matImgDst.SaveImage(@"C:\Users\IPTE40\Desktop\OpenCV\View2_median_blur.bmp");

                matImgSrc.Dispose();
                matImgDst.Dispose();

                bmpSrc.UnlockBits(bmpDataSrc);
            }
        }

Cv2.MedianBlur(matImgSrc, matImgDst, 9);にエラーが表示されます(保護されたメモリの読み取りまたは書き込みを試みます)

誰か助けてください。

ありがとうございます。

4

0 に答える 0