impossible de charger cvextern dans un projet #

J’essaie de déboguer mon programme en utilisant emgu et HaarCascade en c #. Je reçois une exception comme celle-ci:

Impossible de charger la DLL ‘cvextern’: le module spécifié est introuvable. (Exception de HRESULT: 0x8007007E)

J’ai ajouté le fichier cvextern.dll à mon projet et essayé les options “Copier toujours” et “Copier si récent” sur les propriétés du fichier. aussi, la construction est en plate-forme x64.

voici en partie ce que j’ai écrit:

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 My_Image = new Image(dlg.FileName); HaarCascade face = new HaarCascade("haarcascade_frontalface_alt.xml"); 

et l’exception est dans la dernière ligne.

L’erreur que vous recevez n’est pas uniquement due à cvextern: cette dll pointe en fait sur presque toutes les autres dll ouvertes et toutes sont requirejses. Avec cette erreur, vous aurez besoin de la DLL suivante dans votre projet.

Notez que le “220” est le numéro de version que cela changera en fonction des mises à jour.

  • cudart64_32_16.dll
  • cufft64_32_16.dll
  • cvextern.dll
  • npp64_32_16.dll
  • opencv_calib3d220.dll
  • opencv_consortingb220.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

Cette erreur est couverte avec d’autres dans mon article sur codeproject ici .

Si vous rencontrez d’autres problèmes,

À votre santé,

Chris

Cette erreur est apparue de mon côté avec Emgu CV 3.1 et j’ai trouvé pour ce problème une solution efficace:

copier le cvextern.dll dans le répertoire de l’application \bin\Debug\

J’espère que cela t’aides.

pour la version 2.3, la liste augmente avec opencv_ffmpeg.dll et opencv_flann231.dll.

Le fichier cvextern.dll doit figurer dans Windows \ System32 pour x86 et Windows \ SysWOW64 pour x64, c’est un travail pour moi. ps: J’ai utilisé le package NuGet ‘EmguCV’ v3.1.0.1 avec VS2015

Mon problème pour cette erreur était que VS2015 exécutait le projet Web dans IIS Express 32 bits. Le correctif était de s’assurer qu’il utilisait IIS Express 64 bits

J’ai ajouté ce code au démarrage pour me rappeler lors de la configuration d’une nouvelle machine

 if (IntPtr.Size != 8) { throw new Exception("Change VS options to ensure 64bit IIS Express"); } 

dans mon cas, je suis passé à une cible de 64 et non remarqué, aller à x86 a fait disparaître cela