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.
Andere häufige Fehler.
Lassen Sie uns die Größe ändern. Sie können dies mit cv2.resize (img, (x, y))
tun.
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.
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