невозможно загрузить cvextern в проекте c # - PullRequest
18 голосов
/ 06 ноября 2011

Я пытаюсь отладить свою программу, используя emgu и HaarCascade в c #.я получаю исключение, например так:

Невозможно загрузить 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");

, и исключение в последней строке.

Ответы [ 6 ]

21 голосов
/ 07 ноября 2011

Ошибка, которую вы получаете не только до cvextern, эта dll фактически указывает почти на все остальные dll opencv, и все они обязательны.С этой ошибкой вам потребуется следующая dll в вашем проекте.

Обратите внимание, что «220» - это номер версии, который будет изменяться в соответствии с обновлениями.

  • cudart64_32_16.dll
  • cufft64_32_16.dll
  • cvextern.dll
  • npp64_32_16.dll
  • opencv_calib3d220.dll
  • opencv_contrib220.dll
  • opencv_core220.dll
  • opencv_features2d220.dll
  • opencv_flann220.dll
  • opencv_gpu220.dll
  • opencv_highgui220.dll
  • opencv_imgproc2.dll.dll
  • opencv_legacy220.dll
  • opencv_ml220.dll
  • opencv_objdetect220.dll
  • opencv_video220.dll

Эта ошибка рассматривается вместе с другими вмоя статья о кодпроекте здесь .

Любые другие проблемы, дайте мне знать,

Приветствия,

Крис

8 голосов
/ 20 марта 2016

Эта ошибка появилась на моей стороне с Emgu CV 3.1, и я нашел для этой проблемы следующее рабочее решение:

скопируйте cvextern.dll в каталог приложения \bin\Debug\

Надеюсьэто помогает.

1 голос
/ 17 марта 2017

Файл cvextern.dll должен быть в Windows \ System32 для x86 и Windows \ SysWOW64 для x64, это работает для меня.PS: я использовал пакет NuGet 'EmguCV' v3.1.0.1 с VS2015

1 голос
/ 27 марта 2012

для версии 2.3 список увеличивается с opencv_ffmpeg.dll и opencv_flann231.dll.

0 голосов
/ 09 мая 2017

в моем случае я переключился на цель 64 и не заметил, переход на x86 заставил это уйти

0 голосов
/ 14 ноября 2016

Моя проблема, связанная с этой ошибкой, заключалась в том, что VS2015 выполнял веб-проект в 32-разрядной IIS Express.Исправление состояло в том, чтобы убедиться, что он использует 64-разрядную IIS Express

. Я добавил этот код при запуске, чтобы напомнить себе при настройке новой машины

if (IntPtr.Size != 8)
{
     throw new Exception("Change VS options to ensure 64bit IIS Express");
}
...