c# - examples - El inicializador de tipo para ''Emgu.CV.CvInvoke'' lanzó una excepción
face detection emgu cv c# (16)
Si alguien que utiliza Emgu openCv wrapper en el marco de .NET 3.5, dime por qué aparece esta excepción, su excepción interna no puede cargar cxcore.dll.
Le sugiero que active el registro de Fusion y vea desde dónde intenta cargar cxcore.dll y compruebe que lo tiene en el lugar correcto.
No tiene instalada la versión correcta de openCV, o no tiene instalados los dll de openCV. La última versión de Emgu usa cxcore110.dll, la versión anterior usa cxcore100.dll. Deben estar en el directorio donde se ejecuta la aplicación o en la ruta (probablemente% system32%). Tuve este problema cuando intenté ejecutar Emgu.
Estoy teniendo el mismo problema. Configuré el registro de Fusion y no fue útil para mí. Estoy ejecutando el ensamblado en el mismo directorio que cxcore110.dll, así que estoy perplejo.
A continuación, cargué / copié todas las DLL de OpenCV en un directorio en mi camino, el mismo problema.
Encontré la solución después de usar el caminador de dependencias. Estaba trabajando en cualquier sistema que tuviera VS2005 y VS2008. Si solo tiene VS2008, necesitará el paquete redistribuible de Microsoft Visual C ++ 2005 SP1 (x86) s] 1 .
Para la versión CV de Emgu <= 2.1, esto significa las siguientes dlls: cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll, highguiXXX.dll, opencv_ffmpegXXX.dll, mlXXX.dll y cvextern.dll, donde XXX es el número de versión de OpenCV.
Para Emgu CV versión> = 2.2 esto significa los siguientes dlls: 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_objectdetectXXX.dll, opencv_videoXXX .dll donde XXX es el número de versión de OpenCV.
Copie estos archivos y péguelos en C: / WINDOWS / system32
funciona conmigo
Después de probar todas las posibles combinaciones de opencv_xxx, lo que funcionó para mí incluía la biblioteca npp32_42_9.dll. Espero eso ayude.
Este error me ha pasado Agregué cxcore210.dll (para la versión de emgucv 2.1) que originalmente se encuentra dentro de la carpeta bin.
Entonces esto causó un nuevo error diciendo que también debo incluir el archivo highgui210.dll (también para la versión de emgucv 2.1) ...
Entonces el problema fue resuelto :)
Espero que funcione para ti tambien...
Este tutorial parece describir su problema, y la corrección http://fewtutorials.bravesites.com/entries/emgu-cv-c/-emgu-cv-invoke-threw-an-exception-solution
Así es como pude resolver el problema: copie la dirección de la carpeta x86 (o x64 en el sistema operativo de 64 bits) en la carpeta "bin" donde está instalado su Emgu. El mío es: C: / Emgu / emgucv-windows-universal-gpu 2.4.9.1847 / bin / x86
Luego pegue esta dirección aquí: Panel de control> Sistema> Configuración avanzada del sistema> Variables de entorno> en variables del sistema, haga clic en "Ruta" y haga clic en editar> agregue un punto y coma al final de la cadena y pegue la dirección que acaba de copiar Portapapeles después de ese punto y coma> haga clic en Aceptar.
Tuve ese error veces y veces. Estaba usando EmguCV 2.4.9 y .Net framework 4.5. Revisé muchos tutoriales pero no encontré la respuesta. Al final, cuando puse los archivos de OpenCV tanto desde la versión 220 como desde la 249 ¡funcionó!
Copie y pegue todos los dlls no administrados en la carpeta bin de su instalación de EMGU donde está su archivo exe (carpeta Release o Debug de su carpeta de proyectos).
En mi caso, los dlls no administrados están en "C: / Emgu / emgucv-windows-universal-cuda 2.9.0.1922 / bin / x86"
Instalé EmguCV 2.9 recientemente. La aplicación de 64 bits funciona bien. Esta excepción apareció cuando traté de usar plataforma de 32 bits (x86).
Me di cuenta de que, siguiendo un tutorial para configurar Emgu, había establecido la "Ruta" en las variables de entorno del sistema a la carpeta. / X64. Para mi caso, es C: / Emgu / emgucv-windows-universal-cuda 2.9.0.1922 / bin /
Para que la aplicación de 32 bits funcione, cambié la variable "Ruta" a la carpeta. / X86, reinicio la computadora. El inconveniente es que la solución de 64 bits ya no funcionará.
La solución ideal es copiar todos los archivos DLL de. / X86 o. / X64 al lugar donde se encuentra el ejecutable. Para mi caso, porque estoy usando la DLL de LabVIEW + .NET, LabVIEW obtiene una copia de la DLL en su carpeta de caché, por lo que la solución temporal para el fácil desarrollo es cambiar la variable de "Ruta". Cuando distribuyo el ejecutable binario final, copiaré los archivos DLL que coincidan.
En mi caso, al agregar estos archivos bajo el bin / release resolvió este problema: npp32_42_9.dll y cudart32_42_9.dll
Me tomó alrededor de 2 horas para concluir esto :)
He instalado OpenCv2.3.1 antes y ayer instalé la última versión de EmguCV3.0 (también intenté 2.9) pero dio ese error.
todas las soluciones que probé no funcionaron, entonces instalé EmguCV 2.3 y se resolvió. Creo que la versión de EmguCV y opencv es importante para la solución.
Después de probar muchas cosas, si tus archivos .dll están todos correctamente ubicados y solo salen los problemas de la versión, prueba siguiendo pasos simples:
- Abrir propiedades del proyecto creado
- Ir a la sección de compilación
- Cambiar el objetivo de la plataforma a "Cualquier CPU"
Guardar y reconstruir proyecto.
Si ya realizó la instalación de dll y sigue obteniendo la excepción, intente lo siguiente: vaya a Propiedades del proyecto -> Aplicación -> Marco de destino, y cámbielo a NET. Framework 4 y haga clic en ''Sí''. Ejecuta de nuevo tu aplicación, y debería funcionar bien.
Me llevó un tiempo descubrir por qué sucedía esto en mi caso, ya que ninguna de las soluciones anteriores resolvió el problema. Resultó que tenía instalado Windows 10 Pro N
que carece de funciones de medios. Después de instalar el Media Feature Pack
funcionó.