OpenCvSharp,尝试读取或写入受保护的内存

时间:2015-09-14 07:29:48

标签: c# opencvsharp

大家好,这是我的第一个问题。

我正在使用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);行中我收到错误(尝试读取或写入受保护的内存)

请有人可以帮助我吗?

谢谢你和问候。

0 个答案:

没有答案