皆さんこんにちは、これは私の最初の質問です。
私は 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);
にエラーが表示されます(保護されたメモリの読み取りまたは書き込みを試みます)
誰か助けてください。
ありがとうございます。