Comme le dit le titre. J'ai écrit un article car il n'y avait pas de page où le message d'erreur et la cause étaient simplement liés.
Si vous voulez concaténer une image avec une autre (bien que la même image convienne), il est pratique d'utiliser OpenCV hconcate
ou vconcat
. Par exemple, lorsque vous faites hconat
(connexion horizontale), il est naturellement nécessaire d'aligner le nombre de pixels verticaux entre eux, mais parfois même après l'avoir aligné, une erreur peut se produire pour une raison quelconque.
Comme ça.
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'
Il semble qu'il n'y ait pas de taille pour le calcul matriciel. Avez-vous fait une erreur lors du redimensionnement? Déboguer avec print
.
print(left_image.shape)
print(right_image.shape)
output
(256, 256)
(256, 256)
N'est-ce pas chaud!
En conclusion, c'est parce que ** les types de données ne correspondent pas **. Faisons correspondre en utilisant numpy.
left_image = np.array(left_image)
left_image = out.astype('int32')
right_image = np.array(right_image)
right_image = canny.astype('int32')
Vous pouvez maintenant vous connecter.
Autres erreurs courantes.
Redimensionnons. Vous pouvez le faire avec cv2.resize (img, (x, y))
.
C'est rudimentaire, mais ça a tendance à l'être. Avec ʻimread, même si vous faites une erreur en spécifiant le chemin, aucune erreur ne se produira et
None` sera renvoyé. Après «print», assurez-vous que ce n'est pas «None».
Ceci est également courant. L'image grise doit également être une image couleur sur les données. Vous pouvez le faire avec cv2.cvtColor (img, cv2.COLOR_GRAY2BGR)
.
Recommended Posts