大家好,这是我的第一个问题。
我正在使用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);
行中我收到错误(尝试读取或写入受保护的内存)
请有人可以帮助我吗?
谢谢你和问候。