L'initialiseur de type pour 'Emgu.CV.CvInvoke' a généré une exception
J'obtiens cette erreur
L'initialiseur de type pour 'Emgu.CV.CvInvoke' a déclenché une exception.
lorsque j'essaie d'utiliser Emgu CV. J'ai essayé tout ce que je pense de résoudre ce problème, mais il donne toujours la même erreur, et quand je clique sur un bouton, il montre
Objet de référence non définie à une instance d'un objet.
C'est le code que j'essaie:
void ProcessFunction(object sender, EventArgs e)
{
imgOrg = capturecam.QueryFrame();
if (imgOrg == null) return;
imgProc = imgOrg.InRange(new Bgr(50, 50, 50), new Bgr(255, 255, 255));
imgProc = imgProc.SmoothGaussian(9);
imageBox1.Image = imgOrg;
imageBox2.Image = imgProc;
}
Ce qui pourrait j'ai fait de mal et comment puis-je corriger de cette nouvelle? Merci!
source d'informationauteur Dilshan Zuhdi
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. Mon intérieur exception était "Impossible de charger la DLL 'opencv_core290'".
Vous avez besoin de copier x86 et x64 dossiers de "yourEmguFolder/bin" de votre projet de sortie(bin) répertoire. Ensuite construire le projet et l'exécuter.
Selon emgu wiki
C'est probablement l'échec du chargement de la DLL non managée dépendances. Un couple de suggestoins:
Copiez et collez le non géré dll dans le dossier bin de votre EMGU installation de l'endroit où votre fichier exe est (Release ou Debug dossier de votre dossier de projet).
Dans mon cas, dll non gérées sont "C:\Emgu\emgucv-windows-universal-cuda 2.9.0.1922\bin\x86"
vous devez ajouter la dépendance dll dans le projet et de changement " copie vers le répertoire de sortie' propriété 'copy' (add -> item existant)
de Emgu\emgucv-windows-universel-cuda 2.9.0.1922\bin\x86
dans mon projet, ajouter : opencv_core290.dll , opencv_highgui290.dll , opencv_ffmpeg290.dll , opencv_imageproc290.dll et cudart32_55.dll
D'abord vous pouvez ajouter des trois bibliothèques de votre projet.
opencv_core290.dll,opencv_highgui290.dll,opencv_imgproc290.dll. Ici 290 désigne que votre version d'opencv. Après que le changement dans leur propriété "Ne pas copier" pour "copy". que enregistrer votre projet. Après cela, allez à l'emplacement suivant. Si votre ordinateur est en 64 bits que d'aller au dossier suivant "C:\Emgu\emgucv-windows-universal-cuda 2.9.0.1922\bin\x64" ou si vous utilisez os 32 bits plutôt que d'aller "C:\Emgu\emgucv-windows-universal-cuda 2.9.0.1922\bin\x86" et de copier tous les fichiers dll dans le dossier et le coller dans votre votre Projet/bin/debug/dossier. que de les reconstruire votre projet. Que ça fonctionne bien.
Bonne chance!!!!
J'ai Eu le même problème dans mon ordinateur 32 bits pour 3 jours. J'ai résolu ce problème en copiant simplement toutes les dll dans system32 dossier de la corbeille et x86 dossiers et cela a fonctionné. Il semble que il ya des dll qui dépendent d'autres dll et l'instant où vous le transfert de tout cela fonctionne. Je n'ai pas eu le temps de trouver celui qui.
Trouvé ceci sur c#,VS 2017, emgu version 3.2.0.2682
Essayé un simple construire sur AnyCPU et a reçu le mauvais format d'exception.
J'ai donc essayé x86 mauvais format d'exception en raison d'éventuelles suggestions dans les commentaires. Enfin je le mets en x64 et il a bien fonctionné.
Pour moi le problème a été résolu en cliquant dans Visual Studio:
Menu -> Projet -> Propriétés -> Build -> Préférez 32 bits.
Il doit y avoir eu un problème avec emgu (probablement x86) et mon système d'exploitation x64).
vous pourriez utiliser
LD_LIBRARY_PATH
de le résoudre:ouvrir l'avertissement et de vérifier ce que les lib de votre programme manque
recherchez le chemin d'accès
$ locate # pour trouver le chemin de la bibliothèque
Dans votre IDE, définissez la variable d'environnement
LD_LIBRARY_PATH
pour la lib chemin,(j'utilise monodevelop, le chemin est d'Exécuter-->Exécuter - >Paramètres Personnalisés...)il travail quittez bon maintenant 🙂