我正在尝试调试我的程序,在c#中使用emgu和HaarCascade。 我得到一个例外:
无法加载DLL'cvextern':找不到指定的模块。 (HRESULT异常:0x8007007E)
我已将文件cvextern.dll添加到我的项目中,并尝试在文件属性上“复制始终”和“复制如果更新”选项。此外,构建在平台x64中。
这部分是我写的:
private void Load_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Photo Files (*.jpg)|*.JPG";
dlg.CheckFileExists = true;
if (dlg.ShowDialog() == DialogResult.OK)
{
Image<Bgr, Byte> My_Image = new Image<Bgr, byte>(dlg.FileName);
HaarCascade face = new HaarCascade("haarcascade_frontalface_alt.xml");
,例外是在最后一行。
答案 0 :(得分:21)
你收到的错误不仅仅是cvextern这个dll实际上指向几乎所有其他opencv dll而且都是必需的。出现此错误,您需要在项目中使用以下dll。
请注意,“220”是根据更新而更改的版本号。
我在codeproject here的文章中提到了这个错误。
任何其他问题让我知道,
干杯,
克里斯
答案 1 :(得分:9)
答案 2 :(得分:8)
Emgu CV 3.1
突然出现了这个错误,我在这个问题上找到了以下工作解决方案:
复制应用程序目录cvextern.dll
\bin\Debug\
希望这有帮助。
答案 3 :(得分:1)
对于版本2.3,它的列表随着opencv_ffmpeg.dll和opencv_flann231.dll而增加。
答案 4 :(得分:1)
cvextern.dll应该在Windows \ System32中用于x86,而Windows \ SysWOW64用于x64 它为我工作。 ps:我使用的是NuGet Package&#39; EmguCV&#39; v3.1.0.1与VS2015
答案 5 :(得分:1)
我通过以下方式解决了这个问题:
完成了。
答案 6 :(得分:0)
我遇到此错误的问题是VS2015在32位IIS Express中运行Web项目。修复是为了确保它使用64位IIS Express
我在启动时添加了此代码,以便在设置新计算机时提醒自己
if (IntPtr.Size != 8)
{
throw new Exception("Change VS options to ensure 64bit IIS Express");
}
答案 7 :(得分:0)
在我的情况下,我已经切换到64目标而没有注意到,去x86让它消失了