У меня возникают проблемы с созданием существующей 32-разрядной EmguCV ( Версии 2.3 ) в 64-разрядной версии с использованием .net 4.0 и VS2010 на ОС W7/x64. Я приобрел коммерческую лицензию, если это имеет значение и загружено из ссылок, указанных в квитанции.
Ошибка
System.TypeInitializationException was unhandled
Message=The type initializer for 'Emgu.CV.CvInvoke' threw an exception.
Source=Emgu.CV
TypeName=Emgu.CV.CvInvoke
Я выполнил инструкции, приведенные в этой статье . Фактически я использовал проекты образцов в статье, и они строят отлично с V2.2, но когда я заменяю двоичные файлы V2.3 (как emgu, так и opencv), запускайте ошибку.
Кто-нибудь успешно создал проект x64 Emgu ( Версия 2.3.x )? Просьба дать некоторые рекомендации.
Причиной этой ошибки (если кто-то еще сталкивается с той же проблемой) является то, что программа не может получить доступ к opencv_imgproc231.dll или opencv_core231.dll, даже если они присутствуют в выходной папке «bin».
Существует два решения:
Добавьте их в проект и установите их свойства в copy always
, поскольку они являются двумя ключевыми файлами EMGU.
Если шаг 1 не работает, замените текущие файлы ключей в папке bin новыми копиями.
Если оба метода терпят неудачу, может возникнуть проблема с сборкой, поэтому загрузите новую копию EMGU из Sourceforge и повторите попытку. Ошибка позже будет включена в техническую статью, чтобы дать более четкое объяснение того, как ее решить.
Ура, Крис
Не нужно добавлять их в проект; VS не позволит вам. Просто откройте FaceRecognizer.cs
в public static partial class CvInvoke
и изменить:
[DllImport(CvInvoke.EXTERN_LIBRARY, CallingConvention = CvInvoke.CvCallingConvention)]
чтобы:
[DllImport(Emgu.CV.CvInvoke.EXTERN_LIBRARY, CallingConvention = Emgu.CV.CvInvoke.CvCallingConvention)]
Убедитесь, что вы все изменили.
Сначала проверьте этот способ: откройте образец проекта из каталога emgu cv installaiton и запустите его. например, откройте приветственный пример мира и попробуйте запустить его. если образцы проектов работают без проблем, то установка правильная.
Для проектов образцов emgu cv значение параметра Выходной путь в настройках Сборка проекта установлено на '.. \ .. \ бин . Чтобы устранить проблему проекта, откройте проект в visual studio и установите значение параметра Выходной путь на 'C: \ Emgu \ emgucv 2.9 \ bin' . Попробуйте запустить проект. Он должен работать с успехом.
Now, set back the value of Output Path option to bin\Debug\. Then, add all DLL files in the 'C:\Emgu\emgucv 2.9\bin' folder to your project using ADD -> Existing Item menu. similarly, add all DLL files in the 'C:\Emgu\emgucv 2.9\bin\x64' folder to your project using ADD -> Existing Item menu. Now, go to properties window and set Copy to Output Directory option of all dll files to Copy Always. Finally, in the Configuration Manager window, create a new configuration for x64 platform.
Удачи