[PYTHON] Wenn OpenCV hconcat aus irgendeinem Grund einen Fehler verursacht

Wie der Titel schon sagt. Ich habe einen Artikel geschrieben, weil es keine Seite gab, auf der die Fehlermeldung und die Ursache einfach verknüpft waren.

Wenn Sie ein Bild mit einem anderen verketten möchten (obwohl dasselbe Bild in Ordnung ist), können Sie OpenCV hconcate oder vconcat verwenden. Wenn Sie beispielsweise "hconat" (horizontale Verbindung) ausführen, ist es natürlich erforderlich, die Anzahl der vertikalen Pixel miteinander auszurichten. Manchmal kann jedoch auch nach dem Ausrichten aus irgendeinem Grund ein Fehler auftreten.

So was.

python


combined_image = cv2.hconcat([left_image,right_image])

output


Exception has occurred: error
OpenCV(4.1.2) C:\projects\opencv-python\opencv\modules\core\src\matrix_operations.cpp:68: error: (-215:Assertion failed) src[i].dims <= 2 && src[i].rows == src[0].rows && src[i].type() == src[0].type() in function 'cv::hconcat'

Es scheint, dass es keine Größe für die Matrixberechnung gibt. Haben Sie beim Ändern der Größe einen Fehler gemacht? Debuggen mit print.

print(left_image.shape)
print(right_image.shape)

output


(256, 256)
(256, 256)

Ist es nicht heiß?

Zusammenfassend liegt es daran, dass ** die Datentypen nicht übereinstimmen **. Lassen Sie uns mit numpy übereinstimmen.

left_image = np.array(left_image)
left_image = out.astype('int32')
right_image = np.array(right_image)
right_image = canny.astype('int32')

Jetzt können Sie eine Verbindung herstellen.

Bonus

Andere häufige Fehler.

Unterschiedliche Höhe

Lassen Sie uns die Größe ändern. Sie können dies mit cv2.resize (img, (x, y)) tun.

Das Bild kann nicht geladen werden

Es ist rudimentär, aber es ist eher so. Selbst wenn Sie bei der Angabe des Pfads einen Fehler machen, wird mit "imread" fehlerfrei "None" zurückgegeben. Stellen Sie nach dem Drucken sicher, dass es nicht "Keine" ist.

Ich versuche, eine Graustufe und ein Farbbild zu kombinieren

Dies ist auch üblich. Das graue Bild muss auch ein Farbbild auf den Daten sein. Sie können dies mit cv2.cvtColor (img, cv2.COLOR_GRAY2BGR) tun.

Recommended Posts

Wenn OpenCV hconcat aus irgendeinem Grund einen Fehler verursacht
Beim Speichern mit OpenCV ist ein Fehler aufgetreten
Ich erhalte eine Fehlermeldung, wenn ich opencv in pyautoGUI einfüge
# Lösung bei der Pip-Installation tritt bei Verwendung von Anaconda unter Windows 10 ein Fehler auf
Ein Memo für die Installation von pip3 mit python2.7 aus irgendeinem Grund
Ich habe eine Fehlermeldung erhalten, als ich opencv mit Raspeye in Python3 eingefügt habe [Remedy]
Rollback, wenn beim Stoff ein Fehler auftritt
Pythons Unterprozess, aus irgendeinem Grund stdout es nicht.
Beim Importieren von Japanern tritt ein Fehler auf (Problem ungelöst)
Für diejenigen, die Probleme mit einem Fehler haben, wenn pip xg boost installiert
[Python] Bei der Pipenv-Installation von WSL wird Python auf Windows-Seite aus irgendeinem Grund aufgerufen