Dans votre exemple, quand m1 a une liste, m1 == 1 est évaluée comme False (le même pour m2), de sorte que le masque a été False et data[False] = data[0] = 10.
c'est bizarre que cela fonctionne, laissez-moi essayer de nouveau Je reçois le message d'erreur TypeError: ufunc 'bitwise_and' pas pris en charge pour les types d'entrée, et les entrées ne pouvait pas être sûre contraint à tout types pris en charge en fonction de la coulée de la règle "sûr". Mon dataset il float32, pourrait être un problème? Êtes-vous sûr que les deux m1 et m2 sont des tableaux d'un certain temps? Si l'un d'eux est un tableau d'objets, vous ne pouvez pas les comparer à 1. Suffit d'utiliser le shell interactif pour découvrir ce m1 == 1 et m2 == 1 évaluer. ok, le problème était avec les crochets Lorsque je tente d'effectuer la même opération sur plusieurs dimensions de la matrice qui les OpenCV convertit une image à l'aide de yuv_object1 = (yuv_image > lowerLimit).astype(np.float32) | (yuv_image > upperLimit).astype(np.float32), j'obtiens cette erreur TypeError: ufunc 'bitwise_or' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
Vous utilisez python listes plutôt que des tableaux numpy. Essayez plutôt ceci:
Dans votre exemple, quand
m1
a une liste,m1 == 1
est évaluée commeFalse
(le même pourm2
), de sorte que le masque a étéFalse
etdata[False] = data[0] = 10
.Je reçois le message d'erreur TypeError: ufunc 'bitwise_and' pas pris en charge pour les types d'entrée, et les entrées ne pouvait pas être sûre contraint à tout types pris en charge en fonction de la coulée de la règle "sûr". Mon dataset il float32, pourrait être un problème?
Êtes-vous sûr que les deux m1 et m2 sont des tableaux d'un certain temps? Si l'un d'eux est un tableau d'objets, vous ne pouvez pas les comparer à 1. Suffit d'utiliser le shell interactif pour découvrir ce
m1 == 1
etm2 == 1
évaluer.ok, le problème était avec les crochets
Lorsque je tente d'effectuer la même opération sur plusieurs dimensions de la matrice qui les
OpenCV
convertit une image à l'aide deyuv_object1 = (yuv_image > lowerLimit).astype(np.float32) | (yuv_image > upperLimit).astype(np.float32)
, j'obtiens cette erreurTypeError: ufunc 'bitwise_or' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
OriginalL'auteur tiago