【问题标题】:Tutorial how to use EmguCV in Asp.Net MVC application教程如何在 Asp.Net MVC 应用程序中使用 EmguCV
【发布时间】:2015-04-04 02:16:29
【问题描述】:

我创建了概念验证控制台应用程序,它使用 EmguCV 进行模板匹配。 openCV的版本是2.4。

现在我的实际 asp.net mvc 应用程序出现问题。我有一个运行时错误:

“Emgu.CV.CvInvoke”的类型初始化程序引发了异常。 System.DllNotFoundException:无法加载 DLL 'opencv_core2410':找不到指定的模块。

看到其他几个问题,但它们不完整或没有答案:

  1. How use EmguCV in a MVC.NET project

  2. Error:The type initializer for 'Emgu.CV.CvInvoke' threw an exception

我已经尝试过的:

  1. 将 EmguCV 安装中的 x64 和 x86 文件夹复制到已发布的 bin 文件夹中(这些文件夹包含 opencv dll)

  2. 已将 opencv dll 添加到我的 Web 项目并将其设置为“复制到输出目录”,如下所述:http://www.codeproject.com/Articles/257502/Creating-Your-First-EMGU-Image-Processing-Project

  3. 请注意,它在 concole 应用程序中运行良好,但在 mvc 中却不行。

【问题讨论】:

    标签: c# asp.net-mvc opencv emgucv


    【解决方案1】:

    解决方案 How use EmguCV in a MVC.NET project

    部分正确,EMGU 在 IIS 下工作之前需要进行两个主要更改

    1. 为运行 32 位的应用程序激活 app_pool https://help.webcontrolcenter.com/kb/a1114/how-to-enable-32-bit-application-pool-iis-7-dedicatedvps.aspx

    2. 然后您需要转到应用程序 \bin 文件夹,为文件夹“x86”(包含 emgu 的所有 dll)授予文件安全性,如以下链接所述 http://www.iis.net/learn/manage/configuring-security/application-pool-identities

      如果您的应用程序池在默认应用程序池中使用,那么您应该添加用户“IIS AppPool\DefaultAppPool”

    这花了我 5 个小时才弄清楚!!!

    【讨论】:

      【解决方案2】:

      嗯,我找不到这个问题的正常解决方案。

      在主题How use EmguCV in a MVC.NET project 中有一条信息,EmguCV 仅适用于 IIS,而不适用于 IIS Express。不,即使在我们的产品服务器上发布,我也遇到了同样的错误。

      所以唯一的方法,它对我的​​工作方式是:

      1. 创建控制台应用程序,它使用 EmguCV 并处理我的图像。
      2. 从 .net mvc 应用程序中将其作为 .exe 文件调用,并带有参数。

      我将我的问题标记为已回答,但这更像是一种肮脏的技巧,而不是一个好的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-10
        相关资源
        最近更新 更多