Не удалось загрузить cvextern в проекте С#
Я пытаюсь отладить мою программу, используя 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");
и исключение находится в последней строке.
Ответы
Ответ 1
Ошибка, получаемая вами не только для cvextern, эта 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_imgproc220.dll
- opencv_legacy220.dll
- opencv_ml220.dll
- opencv_objdetect220.dll
- opencv_video220.dll
Эта ошибка покрывается вместе с другими в моей статье о codeproject здесь.
Любые другие проблемы дайте мне знать,
Приветствия,
Крис
Ответ 2
Эта ошибка появилась на моей стороне с помощью Emgu CV 3.1
, и я нашел для этой проблемы следующее рабочее решение:
скопируйте cvextern.dll
в каталог приложения \bin\Debug\
Надеюсь, что это поможет.
Ответ 3
для версии 2.3 его список увеличивается с помощью opencv_ffmpeg.dll и opencv_flann231.dll.
Ответ 4
cvextern.dll должен быть в Windows\System32 для x86 и Windows\SysWOW64 для x64
это работает для меня.
ps: я использовал пакет NuGet 'EmguCV' v3.1.0.1 с VS2015
Ответ 5
Моя проблема для этой ошибки заключалась в том, что VS2015 запускал веб-проект в 32-битном IIS Express. Исправление состояло в том, чтобы обеспечить использование 64-битного IIS Express
Я добавил этот код при запуске, чтобы напомнить себе при настройке новой машины
if (IntPtr.Size != 8)
{
throw new Exception("Change VS options to ensure 64bit IIS Express");
}
Ответ 6
в моем случае я переключился на 64 цели и не заметил, переход на x86 заставил это уйти