Инициализатор типа для Emgu.CV.CvInvoke вызвал исключение

Если кто-то, кто использует оболочку Emgu openCv в .net 3.5 framework, скажите, пожалуйста, почему появляется это исключение, его внутреннее исключение не может загрузить cxcore.dll.


person Community    schedule 02.02.2009    source источник


Ответы (15)


Для версии Emgu CV ‹= 2.1 это означает следующие библиотеки dll: cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll, highguiXXX.dll, opencv_ffmpegXXX.dll, mlXXX.dll и cvextern.dll, где XXX — номер версии OpenCV.

Для версии Emgu CV >= 2.2 это означает следующие библиотеки DLL: 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_object, opencv_object, opencXXXv.dll. .dll, где XXX — номер версии OpenCV.

скопируйте эти файлы и вставьте их в C:\WINDOWS\system32

это работает со мной

person Omar Osama    schedule 17.08.2011

Вот как я могу решить эту проблему: Скопируйте адрес папки x86 (или x64 в 64-битной ОС) в папку «bin», где установлен ваш Emgu. Мой: C:\Emgu\emgucv-windows-universal-gpu 2.4.9.1847\bin\x86

Затем вставьте этот адрес сюда: «Панель управления»> «Система»> «Дополнительные параметры системы»> «Переменные среды»> в системных переменных нажмите «Путь» и нажмите «Изменить»> добавьте точку с запятой в конец строки и вставьте адрес, который вы только что скопировали. буфер обмена после этой точки с запятой> нажмите OK.

person Babi    schedule 09.07.2013
comment
Это плохо. Что лучше: выберите все добавленные .dll и установите всегда копию для вывода. - person H3AP; 14.06.2014

Эта ошибка произошла со мной. Я добавил cxcore210.dll (для версии emgucv 2.1), который изначально находится в папке bin.

Затем это вызвало новую ошибку, говорящую о том, что я должен также включить highgui210.dll (также для версии emgucv 2.1)...

Тогда проблема была решена :)

Я надеюсь, что это сработает и для вас...

person Marc De Joya    schedule 08.09.2012

У вас не установлена ​​правильная версия openCV, или у вас вообще не установлена ​​dll openCV. Последняя версия Emgu использует cxcore110.dll, предыдущая версия использует cxcore100.dll. Они должны быть либо в каталоге, в котором запущено ваше приложение, либо в пути (вероятно, %system32%). У меня была эта проблема, когда я пытался запустить Emgu.

person Kris Erickson    schedule 05.02.2009

Попробовав все возможные комбинации opencv_xxx, у меня сработало включение библиотеки npp32_42_9.dll. Надеюсь, поможет.

person nagash    schedule 23.05.2012

Я предлагаю вам включить ведение журнала Fusion и посмотреть, где он пытается загрузить файл cxcore.dll и убедиться, что он находится в правильном месте.

person Jon Skeet    schedule 02.02.2009

У меня такая же проблема. Я настроил ведение журнала Fusion, и это не помогло мне. Я запускаю сборку в том же каталоге, что и cxcore110.dll, поэтому я в тупике.

Затем я загрузил / скопировал все библиотеки DLL OpenCV в каталог на моем пути, та же проблема.

Нашел решение после использования зависимостей. Он работал на любой системе с VS2005 и VS2008. Если у вас только VS2008, вам потребуется распространяемый пакет Microsoft Visual C++ 2005 SP1 (x86)s]1.

person kenny    schedule 02.03.2009

Если вы уже выполнили настройку dll и по-прежнему получаете исключение, попробуйте следующее: перейдите в «Свойства проекта» -> «Приложение» -> «Целевая платформа» и измените его на NET. Framework 4 и нажмите «Да». Снова запустите приложение, и оно должно работать нормально.

person Sergio    schedule 15.11.2015
comment
Пфф :|. После часа, потраченного на эту проблему, это решение отлично сработало для emgucv 3.1. - person caffeine; 03.09.2016

Мне потребовалось некоторое время, чтобы понять, почему это происходит в моем случае, поскольку ни одно из приведенных выше решений не решило проблему. Оказалось, что у меня был установлен Windows 10 Pro N, в котором отсутствуют мультимедийные функции. После установки Media Feature Pack все заработало.

person Florian    schedule 02.02.2018
comment
Аналогичное решение для Windows Server 2012: установите функцию Media Foundation. - person Ishmaeel; 26.04.2018

У меня была эта ошибка раз и несколько раз. Я использовал EmguCV 2.4.9 и .Net framework 4.5. Я пересмотрел много учебников, но не нашел ответа. В конце концов, когда я поставил файлы opencv как из версии 220, так и из версии 249, это сработало!

person Ali Asgari    schedule 12.08.2013

Скопируйте и вставьте все неуправляемые dll в папку bin вашей установки EMGU туда, где находится ваш исполняемый файл (папка Release или Debug папки вашего проекта).
В моем случае неуправляемые библиотеки DLL находятся в папке «C:\Emgu\emgucv-windows-universal-cuda 2.9.0.1922\bin\x86».

person Subodha Charles    schedule 18.02.2014

Недавно я установил EmguCV 2.9. 64-битное приложение работает нормально. Это исключение появилось, когда я попытался использовать 32-битную платформу (x86).

Я понял, что, следуя руководству по настройке Emgu, я установил «Путь» в переменных системной среды в папку .\x64. В моем случае это C:\Emgu\emgucv-windows-universal-cuda 2.9.0.1922\bin\

Чтобы 32-битное приложение заработало, я изменил переменную «Путь» на папку .\x86, перезагрузил компьютер. Недостатком является то, что 64-битное решение больше не будет работать.

Идеальное решение — скопировать все файлы DLL из .\x86 или .\x64 туда, где находится исполняемый файл. В моем случае, поскольку я использую LabVIEW + .NET DLL, LabVIEW получает копию DLL в свою папку кеша, поэтому временное решение для упрощения разработки — изменить переменную «Путь». Когда я распространяю окончательный двоичный исполняемый файл, я скопирую соответствующие DLL-файлы.

person Jian    schedule 08.07.2014

В моем случае добавление этих файлов в bin\release решило проблему: npp32_42_9.dll и cudart32_42_9.dll

На это у меня ушло около 2 часов :)

person bharat.chandak100    schedule 25.07.2014

Я установил OpenCv2.3.1 раньше, а вчера я установил последнюю версию EmguCV3.0 (также пробовал 2.9), но она выдала эту ошибку.

все решения, которые я пробовал, не сработали, я установил EmguCV 2.3, и это решилось. я думаю, что версия EmguCV и opencv важна для решения.

person Esma    schedule 04.10.2014

После многих попыток, если все ваши файлы .dll размещены правильно и возникает только проблема с версией, попробуйте выполнить следующие простые шаги:

  1. Откройте свойства созданного проекта
  2. Перейти в раздел сборки
  3. Измените целевую платформу на «Любой процессор».

Сохраните и перестройте проект.

person Wasim Akbar    schedule 04.11.2015