Beispiel, was zu tun ist, wenn das Beispielskript nicht funktioniert (OpenCV-Python)

Was tun, wenn das Beispielskript Ihrer Meinung nach nicht funktioniert?

Ich werde über meine Erfahrungen mit dem Import von cv2 aus Python 2.7 sprechen.

** 1. Es gibt kein Eingabebild. ** ** **

Selbst wenn Sie nur das Skript erhalten, funktioniert es nicht ohne das Eingabebild, das das Skript sein soll. Suchen Sie in der OpenCV-Distribution nach Bildern, die sich auf den verwendeten Kontext beziehen, z. B. 'box.png', 'box_in_scene.png'.

** 2. Funktion nicht gefunden **

Angenommen, Sie erhalten eine Fehlermeldung, wenn Sie cv2.drawMatches aufrufen, während Sie ein Skript ausführen.

>>> help(cv2.drawMatches)


 Aber es verursacht einen Fehler.

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

 In diesem Fall sollte der Wert vor 3.0.0 angezeigt werden.
 Sowohl die Distribution in OpenCV3 als auch die Distribution in OpenCV2 sind cv2.pyd.
 Finden Sie heraus, welche Version Sie verwenden.
 drawMatches () ist eine Funktion, die nicht in OpenCV2 enthalten ist und in der OpenCV3-Distribution implementiert ist.

 Am Speicherort der Python-Bibliothek (z. B. C: \ Python27 \ Lib \ site-packages, lesen Sie bitte entsprechend Ihrer Umgebung),
 Kopieren Sie die Version der OpenCV Python-Bindung cv2.pyd, die Sie verwenden möchten.

 Starten Sie dann Python neu und machen Sie dasselbe. Sie finden 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. ** Funktion nicht gefunden (Name war anders) **
 Obwohl ich OpenCV3 die in Python verwendete Version von OpenCV gegeben habe
 Über OpenCV3 geschriebene Skripte funktionieren möglicherweise nicht.

 Ein Detektor zur Berechnung von ORB-Merkmalen.
\>>> 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__Aber'3.0.0-beta'では、関数名Abercv2.ORB()Nicht cv2.ORB_create()Es ist geworden.`**

Warum kannten Sie cv2.ORB_create ()? Starten Sie [Python Documentation Server] Wenn Sie auf die Schaltfläche [Browser öffnen] klicken, wird die Python-Bibliothek im Browser angezeigt. [C:\Python27\lib\site-packages] Folgen Sie dem Link zu und wählen Sie [cv2]. Also habe ich die Seite mit "ORB" durchsucht und gefunden.

Es ist wahrscheinlich, dass sich die in OpenCV3 hinzugefügten Funktionen noch erheblich ändern werden. (Die Beschreibung in diesem Artikel sollte schnell veraltet und unbrauchbar werden.)

** 4. Funktioniert es nicht wie erwartet? ** ** **

cv2.drawMatches (...) sollte das gewünschte Übereinstimmungsergebnis für die beiden Bilder anzeigen. Es wird nur ein Bild angezeigt, und es ist schwer zu sagen, dass es die Entsprechung zeigt. Was ist los?

Als ich nach cv2.drawMatches suchte, gab es eine Person, die drawMatches selbst veröffentlicht hat.

OpenCV - Berechnung und Abgleich der Funktionsmenge mit SIFT

Lass es mich benutzen Ein Diagramm, das die entsprechenden Punkte der beiden Bilder mit einer geraden Linie verbindet, wurde sicher angezeigt. (Es gibt jedoch viele Punkte falscher Zuordnung, die auf den Merkmalspunktdeskriptor und den Übereinstimmungsalgorithmus zurückzuführen sind.)

Hinweis: Die ursprüngliche Site, auf der das Beispielskript meiner Meinung nach nicht funktioniert hat, sollte ständig überarbeitet werden. Daher möchte ich auf dieser Seite die Idee zeigen, dass Anfänger und fortgeschrittene Benutzer versuchen können, das Problem selbst zu lösen, wenn sie auf ein solches Problem stoßen.

Recommended Posts

Beispiel, was zu tun ist, wenn das Beispielskript nicht funktioniert (OpenCV-Python)
Hinweise, was zu tun ist, wenn das Löschen von Schatten nicht mit Scatter () / Scatter3d () von Matplotlib funktioniert
Was tun, wenn das Diagramm nicht auf dem Jupyter-Notizbuch (Ipython) angezeigt wird?
Was tun, wenn python3 venv auf Raspberry Pi nicht gut funktioniert?
Was tun, wenn die Einstellungen der jupyterlab-Erweiterung nicht angezeigt werden?
Was tun, wenn ein PermissionError in tempfile.mkstemp auftritt?
[EC2] Was tun, wenn Selen festsitzt und die Verarbeitung nicht fortgesetzt wird?
Was tun, wenn sys / cdefs.h nicht vorhanden ist?
Was zu tun ist, wenn es nicht in der Sudoers-Datei enthalten ist. Dieser Vorfall wird gemeldet.
Was tun, wenn der Fortschrittsbalken in tqdm von Python nicht angezeigt wird?
Was tun, wenn Python in pyenv nicht von der Systemversion wechselt?
Was tun, wenn bei der Installation von openCV 3 der Fehler "Fehler: opencv3: Unterstützt nicht das Erstellen von Python 2- und 3-Wrappern" angezeigt wird
Verfahren, die durchgeführt werden müssen, wenn Japanisch nicht in matplotlib angezeigt wird
Überprüfen Sie, ob der Docker-Container keine Verbindung zum Internet herstellt
Was tun, wenn Ubuntu abstürzt?
[AWS] Was tun, wenn der Ping-Befehl eine "Zeitüberschreitung" verursacht?
Beim Inkrementieren des Werts eines Schlüssels, der nicht vorhanden ist
Lösung, wenn die Hintergrundabdeckung von VS Code für Linux nicht funktioniert
Die Geschichte der Release-Arbeit der Anwendung, die Google nicht erzählt
Was tun, wenn "Ich kann die Site nicht sehen !!!!"
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
Wenn das auf Mac / Marvericks installierte Programm pip nicht funktioniert
[Anfänger] Was tun, wenn "[Errno 2] Datei b'test.csv 'nicht vorhanden ist: b'test.csv" beim Lesen von csv von Pandas angezeigt wird
Was tun, wenn ein Teil des Hintergrundbilds transparent wird, wenn Sie transparente Bilder mit Pillow kombinieren?
Was tun, wenn der Benutzername geändert wird und der Pfad der pyenv-Bibliothek nicht übergeben wird?
Was tun, wenn bei der Installation von CentOS auf VirtualBox die Meldung "Die Sitzung konnte nicht geöffnet werden" angezeigt wird
Was tun, wenn das über Scrapy heruntergeladene Ergebnis auf Englisch ist?
Skript zum Ändern der Beschreibung von Fasta
Ändern Sie nicht die Reihenfolge der Spalten, wenn Sie Pandas-Datenrahmen verketten.
[Docker] Was tun, wenn ein Fehler aufgetreten ist? Der Binär-Git wurde nicht gefunden
[Python] Was tun, wenn beim Importieren aus dem zu sys.path hinzugefügten Verzeichnis gegen PEP8 verstoßen wird?
Was ist zu tun, wenn "Etwas läuft bereits an Port 8000" angezeigt wird, wenn der Entwicklungsbefehl von Gatsby ausgeführt wird.
Was tun, wenn der Chainer (Windows) -Beispielverzeichnis mit WinError 183 beendet wird?
Was tun, wenn bei der Installation von pyenv kein Fehler auftritt?
Überprüfen Sie Elemente, wenn das importierte Python-Modul nicht wie erwartet funktioniert
Verarbeitung, wenn die Schlüsseleingabe von Python-Pygame nicht gut funktioniert.
Was tun, wenn in der Anaconda-Umgebung die Warnung "Die Umgebung ist konsistent ..." angezeigt wird
Was tun, wenn Sie wütend werden, wenn Sie nicht libxml / xmlversion.h haben, wenn Sie lxml in pip einfügen?
Ich möchte den Transferstatus der 2020 J League visualisieren. Was soll ich tun?
Ich habe es geschafft, die Situation zu lösen, in der Python auf dem Mac nicht funktioniert
[Python] Was tun, wenn bei send_keys in Headless Chrome ein Fehler auftritt?
Was tun, wenn bei Verwendung von strptime "TypeError: muss Zeichenfolge sein, nicht int ..." angezeigt wird
Lassen Sie uns aktualisiert verschlüsseln! Was tun, wenn der Befehl certbot erneuern nicht funktioniert?
Lösung für das Problem, dass der Build bei der Installation von OpenCV (PEP517) nicht beendet wird
[Überprüfung] Nimmt levelDB Zeit zum Registrieren von Daten, wenn die Datenmenge zunimmt? ??
Was tun, wenn "TypeError: Datentyp nicht verstanden" in der Python-Datei numpy.zeros angezeigt wird?
Was tun, wenn (Basis) am Anfang des Mac-Terminals angezeigt wird?
Was tun, wenn die Schienen nicht funktionieren?
Nach der Installation von php7.2 funktioniert der Befehl php nicht
Was tun, wenn die Autocomplete-Python von Atom nicht funktioniert?
Wenn die Platzhalterspezifikation mit Pylint nicht funktioniert
Wenn die integrierte Spyder-Umgebung nicht funktioniert
Ich werde zusammenfassen, was ich gerne getan habe, um aus dem Zustand herauszukommen, in dem ich den Buchstaben D von Docker nicht einmal kenne
[Python] Typ Fehler: 'WebElement'-Objekt ist nicht iterierbar Was tun, wenn ein Fehler auftritt?
[systemd] Wie gehe ich mit dem Problem um, dass fancontrol nach dem Anhalten nicht funktioniert?
Was tun, wenn nur das Fenster angezeigt wird und im Pygame nichts angezeigt wird?