Emgu.CV.CvInvoke iisexpress.exe 异常

Emgu.CV.CvInvoke exception in iisexpress.exe

我在 Web 解决方案 ASP.NET MVC5 中使用库 Emgu.CV.World 和一组 类 x86。版本 EMGU:3.1.0.2282.

一会还行,后来把工程复制到同级目录下,改文件夹名,开始出现错误:

在iisexpress.exe中的0x2AF630B1(cvextern.dll)处抛出异常:0xC0000005:访问冲突读取位置0x00000000。

在相同库的 Win Forms 应用程序中实现了相同的功能,它可以正常工作。 但是网络应用程序总是崩溃,在这个方法上:CvInvoke.Threshold ().

使用 x86、x64 目录,将所有库复制到一个单独的目录中,将应用程序类型更改为任何 CPU,将 x86 更改为 x64,什么都不做。 在其他系统(64位)上试过也是一样的。最有趣的是它最初有效,即我的代码没有错误。

我用过 IIS Express 10,vs 2015 community。

非常感谢您的建议,谢谢

找到答案了。在最后的重构行中没有注意到错误的原因:imgGray.Dispose();

imageRotate = imgGray.Rotate(-avg, new Gray(255));
        }
        else
        {
            imageRotate = imgGray;
        }
        imgGray.Dispose();

        //return imageRotate.Bitmap;
        return BlackFilterImage(imageRotate);
    }

    private static Bitmap BlackFilterImage(Image<Gray, byte> img)
    {
        UMat resultImg = new UMat();
        CvInvoke.Threshold(img, resultImg, 105, 255, ThresholdType.BinaryInv); //Error is here

不幸的是,错误的性质把我搞糊涂了。