EmguCV TypeInitializationException

rkm*_*max 13 c# emgucv

我真的是EgmuCV的新手

我尝试使用以下代码从网络摄像头捕获图像:

//Program.cs (Winform)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Emgu.CV;
using Emgu.CV.UI;
using Emgu.Util;
using Emgu.CV.Structure;

namespace EgmuCVTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Capture cp = new Capture();
            ImageViewer imv = new ImageViewer();

            Application.Idle += new EventHandler(delegate(object s, EventArgs ea)
            {
                imv.Image = cp.QueryFrame();
            });

            imv.ShowDialog();

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下错误:

在此输入图像描述

我检查并在.exe文件夹中包含所有必要的DLL

rkm*_*max 22

在经历了同样的问题一段时间后,我发现解决此问题的指令(TypeInitializer异常)是不完整的.

  1. 对于基本应用程序,您需要cvextern.dll, Emgu.CV.dll, Emgu.CV.UI.dll, Emgu.Util.dll在.EXE的目录中.

  2. 你需要一个86(64)的.exe文件目录和里面的"86" dir用户需要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.dllcudart32_42_9.dll, npp32_42_9.dll, opencv_flann240.dll

一旦包含所有必需的DLL,该应用程序将立即生效.

  • 对我来说,只需将**cvextern.dll**从`C:\ Emgu\emgucv-windows-universal 3.0.0.2157\bin\x86`复制到`...\Visual Studio 2013\Projects\ScreenAnalyzer\TestProject\bin \如果异常,Debug`可以摆脱它. (3认同)

小智 5

我正在使用Emgu 3.0 64位,我唯一需要做的就是修复这个问题,将项目中的构建类型更改为x64.

右键单击项目名称 - > 属性 - > 构建 - > 平台目标 - > x64

参考http://www.codeproject.com/Articles/257502/Creating-Your-First-EMGU-Image-Processing-Project

希望它可以帮到某人.