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.
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'.
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.)
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.