Exemple de ce qu'il faut faire lorsque l'exemple de script ne fonctionne pas (OpenCV-Python)

Que faire si vous pensez que l'exemple de script ne fonctionne pas

Je parlerai de mon expérience dans la situation d'import cv2 depuis Python 2.7.

** 1. Il n'y a pas d'image d'entrée. ** **

Même si vous n'obtenez que le script, cela ne fonctionnera pas sans l'image d'entrée que le script est censé être. Recherchez des images dans la distribution OpenCV qui sont liées au contexte utilisé, telles que "box.png ", "box_in_scene.png ".

** 2. Fonction non trouvée **

Supposons que vous obteniez une erreur lorsque vous appelez cv2.drawMatches lors de l'exécution d'un script.

>>> help(cv2.drawMatches)


 Mais cela provoque une erreur.

#### **`>>> cv2.__version__`**
```__version__

 Si tel est le cas, la valeur antérieure à 3.0.0 doit être affichée.
 La distribution dans OpenCV3 et la distribution dans OpenCV2 sont cv2.pyd.
 Découvrez quelle version vous utilisez.
 drawMatches () est une fonction qui n'est pas incluse dans OpenCV2 et est implémentée dans la distribution OpenCV3.

 À l'emplacement de la bibliothèque Python (par exemple C: \ Python27 \ Lib \ site-packages, veuillez lire en fonction de votre environnement),
 Copiez la version de la liaison OpenCV Python cv2.pyd que vous souhaitez utiliser.

 Ensuite, redémarrez python et faites de même, vous trouverez cv2.drawMatches.
\>>> import cv2
\>>> cv2.\_\_version__
'3.0.0-beta'
\>>> help(cv2.drawMatches)
Help on built-in function drawMatches:

drawMatches(...)
    drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg


### 3. 3. ** Fonction non trouvée (le nom était différent) **
 Même si j'ai donné la version d'OpenCV utilisée en Python à OpenCV3
 Les scripts écrits sur OpenCV3 peuvent ne pas fonctionner.

 Un détecteur pour calculer les caractéristiques ORB.
\>>> cv2.ORB()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'ORB'
\>>> cv2.ORB_create()
<ORB 064E4490>
\>>> 

#### **`cv2.__version__Mais'3.0.0-beta'では、関数名Maiscv2.ORB()Pas cv2.ORB_create()Il est devenu.`**

Pourquoi connaissiez-vous cv2.ORB_create ()? Démarrez [Python Documentation Server] Lorsque vous appuyez sur le bouton [Ouvrir le navigateur], la bibliothèque Python s'affiche dans le navigateur. [C:\Python27\lib\site-packages] Suivez le lien et sélectionnez [cv2]. J'ai donc cherché la page avec "ORB" et l'ai trouvée.

Il semble probable que les fonctionnalités ajoutées dans OpenCV3 changeront encore de manière significative. (La description de cet article devrait rapidement devenir obsolète et inutile.)

** 4. Cela ne fonctionne-t-il pas comme prévu? ** **

cv2.drawMatches (...) doit afficher le résultat de correspondance souhaité pour les deux images, Une seule image est affichée, et il est difficile de dire qu'elle montre la correspondance. Qu'est-ce qui ne va pas?

Quand j'ai cherché cv2.drawMatches, il y avait une personne qui a publié drawMatches par lui-même.

OpenCV - Calcul de la quantité de fonctionnalités et correspondance à l'aide de SIFT

Laisse moi m'en servir Un graphique reliant les points correspondants des deux images avec une ligne droite a été affiché en toute sécurité. (Cependant, il existe de nombreux points de mappage incorrect, qui sont dus au descripteur de point caractéristique et à l'algorithme de correspondance.)

Remarque: Le site d'origine, où je pensais que l'exemple de script ne fonctionnait pas, devrait être constamment révisé. Par conséquent, sur cette page, j'ai l'intention de montrer l'idée que les débutants et les intermédiaires peuvent essayer de résoudre le problème par eux-mêmes lorsqu'ils rencontrent un tel problème.

Recommended Posts

Exemple de ce qu'il faut faire lorsque l'exemple de script ne fonctionne pas (OpenCV-Python)
Remarques sur ce qu'il faut faire lorsque l'effacement des ombres ne fonctionne pas avec scatter () / scatter3d () de matplotlib
Que faire lorsque le graphique n'apparaît pas sur le notebook Jupyter (IPython)
Que faire si Python3 Venv ne fonctionne pas bien sur Raspberry Pi
Que faire lorsque les paramètres de l'extension jupyterlab ne sont pas reflétés
Que faire quand une PermissionError dans tempfile.mkstemp se produit
[EC2] Que faire lorsque le sélénium est bloqué et que le traitement ne se poursuit pas
Que faire si sys / cdefs.h n'existe pas
Que faire quand n'est pas dans le fichier sudoers. Cet incident sera signalé.
Que faire si la barre de progression n'est pas affichée dans tqdm de python
Que faire lorsque Python ne passe pas de la version système dans pyenv
Que faire si vous obtenez l'erreur "Erreur: opencv3: Ne prend pas en charge la construction des wrappers Python 2 et 3" lors de l'installation d'openCV 3
Procédures à suivre lorsque le japonais n'est pas affiché dans matplotlib
Vérifier quand le conteneur Docker ne se connecte pas à Internet
Que faire quand Ubuntu plante
[AWS] Que faire lorsque la commande ping provoque un "délai d'expiration"
Lors de l'incrémentation de la valeur d'une clé qui n'existe pas
Solution lorsque la couverture de fond de VS Code pour Linux ne fonctionne pas
L'histoire du travail de sortie de l'application que Google ne raconte pas
Que faire lorsque vous obtenez "Je ne peux pas voir le site !!!!"
Que faire lorsque le type de valeur est ambigu en Python?
Lorsque le programme pip installé sur Mac / Marvericks ne fonctionne pas
[Débutant] Que faire lorsque "[Errno 2] Le fichier b'test.csv 'n'existe pas: b'test.csv" s'affiche lors de la lecture du csv des pandas
Que faire lorsqu'une partie de l'image d'arrière-plan devient transparente lorsque l'image transparente est combinée avec Oreiller
Que faire si le nom d'utilisateur est modifié et que le chemin de la bibliothèque pyenv ne passe pas
Que faire si vous obtenez "La session n'a pas pu être ouverte" lors de l'installation de CentOS sur VirtualBox
Que faire lorsque le résultat téléchargé via scrapy est en anglais
Script pour changer la description de fasta
Ne changez pas l'ordre des colonnes lors de la concaténation des trames de données pandas.
[Docker] Que faire en cas d'erreur Impossible de trouver le git binaire apparaît
[Python] Que faire en cas de violation de PEP8 lors du processus d'importation à partir du répertoire ajouté à sys.path
Que faire lorsque "Quelque chose est déjà en cours d'exécution sur le port 8000" s'affiche lorsque la commande de développement de Gatsby est exécutée.
Que faire si le mnist d'exemple Chainer (Windows) se termine par WinError 183.
Que faire si l'installation de pyenv ne se poursuit pas avec une erreur
Vérifiez les éléments lorsque le module python importé ne fonctionne pas comme prévu
Traitement lorsque l'entrée clé de pygame Python ne se passe pas bien.
Que faire lorsque l'avertissement "L'environnement est cohérent ..." apparaît dans l'environnement Anaconda
Que faire lorsque vous vous fâchez que libxml / xmlversion.h n'existe pas lorsque vous mettez lxml avec pip
Je souhaite visualiser l'état des transferts de la J League 2020, que dois-je faire?
J'ai réussi à résoudre la situation où Python ne fonctionne pas sur Mac
[python] Que faire si vous obtenez une erreur avec send_keys dans le chrome sans tête
Que faire si «TypeError: must be string, not int…» apparaît lors de l'utilisation de strptime
Let's Encrypt mis à jour! Que faire si la commande certbot renouveler ne fonctionne pas
Solution au problème qui ne se termine pas lors de l'installation d'OpenCV (PEP517)
[Vérification] LevelDB prend-il du temps pour enregistrer les données lorsque la quantité de données augmente? ??
Que faire lorsque "TypeError: type de données non compris" apparaît dans numpy.zeros de python
Que faire si (base) est affiché au début du terminal Mac
Que faire si les rails ne fonctionnent pas
Après l'installation de php7.2, la commande php ne fonctionne pas
Que faire si l'autocomplete-python d'atome ne fonctionne pas
Lorsque la spécification générique ne fonctionne pas avec pylint
Lorsque l'environnement intégré de Spyder ne fonctionne pas
Je vais résumer ce que j'ai été heureux de faire pour sortir de l'état où je ne connais même pas la lettre D de Docker
[Python] Erreur de type: l'objet 'WebElement' n'est pas itérable Que faire lorsqu'une erreur se produit
[systemd] Comment faire face au problème que fancontrol ne fonctionne pas après la suspension
Que faire lorsque seule la fenêtre est affichée et que rien ne s'affiche dans le pygame