[PYTHON] Quand OpenCV hconcat provoque une erreur pour une raison quelconque

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.

prime

Autres erreurs courantes.

Hauteur différente

Redimensionnons. Vous pouvez le faire avec cv2.resize (img, (x, y)).

L'image ne peut pas être chargée

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».

J'essaye de combiner une échelle de gris et une image couleur

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

Quand OpenCV hconcat provoque une erreur pour une raison quelconque
J'ai eu une erreur lors de l'enregistrement avec OpenCV
J'obtiens une erreur lorsque je mets opencv dans pyautoGUI
# Solution lorsque l'installation de pip donne une erreur lors de l'utilisation d'Anaconda sur Windows 10
Un mémo pour quand pip3 est installé avec python2.7 pour une raison quelconque
J'ai eu une erreur lorsque j'ai mis opencv dans python3 avec Raspeye [Remedy]
Revenir en arrière lorsqu'une erreur se produit avec le tissu
le sous-processus de python, pour une raison quelconque, il ne stdout.
Une erreur se produit lors de l'importation de japandas (problème non résolu)
Pour ceux qui ont des problèmes avec une erreur lors de l'installation de pip xg boost
[python] Lorsque pipenv installe WSL, python du côté Windows est appelé pour une raison quelconque