zoukankan      html  css  js  c++  java
  • What Can I do if "The type initializer for 'Emgu.CV.CvInvoke' threw an exception"?

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

    If you see this exception, please check the following

    Have you installed MSVCRT?

    • For Version 2.0+, the bundled OpenCV 2.0 binary is build with Visual Studio 2008, you will needs to installed MSVCRT 9.0 SP1 to resolve the dependency issue.
    • For Version 1.5, the bundled OpenCV pre1.1 binary is build with Visual Studio 2005, you will needs to installed MSVCRT 8.0 SP1 to resolve the dependency issue.

    Have you copied the OpenCV dlls to the execution directory?

    • Make sure the unmanaged DLLs are in the execution directory.
      • For Emgu CV version <= 2.1, this means the following dlls: cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll, highguiXXX.dll, opencv_ffmpegXXX.dll, mlXXX.dll and cvextern.dll where XXX is the OpenCV version number.
      • For Emgu CV version >= 2.2 this means the following dlls: opencv_calib3dXXX.dll, opencv_contribXXX.dll, opencv_coreXXX.dll, opencv_features2dXXX.dll, opencv_highguiXXX.dll, opencv_imgprocXXX.dll, opencv_legacyXXX.dll, opencv_mlXXX.dll, opencv_objectdetectXXX.dll, opencv_videoXXX.dll where XXX is the OpenCV version number.
    • The best way to set up your project is:
      • Copy the unmanaged DLLs to your project folder
      • Right click on the project, click Add->Existing Item and select all unmanaged DLLs. Add them to the project.
      • For each of the included Dlls, left click on it, find the "Copy to Output Directory" option and select "Copy if newer"

    Are you running a 32-Bit OS?

    The windows installer is only available for 32-Bit windows. If you are using a 64-bit OS, there are three possible ways to resolve this issue:

    • You can download the 64bit binary only zip package from sourceforge and add it to your project.
    • You can also recompile OpenCV from source for 64-bit platform. See the instruction for building from SVN
    • Alternatively you can force your .NET application to run in 32bit mode, even on a 64-bit OS. To do this, in the configuration page of your executable project, select Platform Target as 'x86'.

    Are you missing any dependency?

    Download Dependency Walker and use it to open the "cvextern.dll" file. Check if any dependency is missing.

    I have checked all of above but I still got the Exception

    In this case, please try to build and run the examples. After building the examples, try to run the "Hello World" Program.

    If "Hello World" runs without any problem, compare it with you project, find the difference in configuration and fix it.

    If "Hello World" get the same "The type initializer for 'Emgu.CV.CvInvoke' threw an exception." message, try to find out the InnerException and report it to the discussion forum

  • 相关阅读:
    堆栈学习
    需要阅读的书籍
    Rust Book Lang Ch.19 Fully Qualified Syntax, Supertraits, Newtype Pattern, type aliases, never type, dynamic sized type
    Rust Lang Book Ch.19 Placeholder type, Default generic type parameter, operator overloading
    Rust Lang Book Ch.19 Unsafe
    Rust Lang Book Ch.18 Patterns and Matching
    Rust Lang Book Ch.17 OOP
    Rust Lang Book Ch.16 Concurrency
    Rust Lang Book Ch.15 Smart Pointers
    HDU3966-Aragorn's Story-树链剖分-点权
  • 原文地址:https://www.cnblogs.com/81/p/2002909.html
Copyright © 2011-2022 走看看