Comment passer un ndarray numpy comme couleur dans OpenCV?

BigBoy1337

J'essaye de passer un ndarray dans cette ligne: cv2.fillPoly(im, pts=[cnt],color=(centroid_color[0],centroid_color[1],centroid_color[2]))

centroid_color ressemble à ceci: [ 0 255 0]et est de type<type 'numpy.ndarray'>

Cependant, je continue à recevoir cette erreur: TypeError: La valeur scalaire de l'argument «couleur» n'est pas numérique.

Comment puis-je convertir cela correctement?

edit: mon code mis à jour actuel qui obtient toujours la même erreur:

im = cv2.imread('luffy.jpg')
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(gray,127,255,0)

contours,h = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

for cnt in contours:
    moment = cv2.moments(cnt)
    c_y = moment['m10']/(moment['m00']+0.01)
    c_x = moment['m01']/(moment['m00']+0.01)
    centroid_color = im[c_x,c_y]
    centroid_color = np.array((centroid_color[0],centroid_color[1],centroid_color[2]))
    r = lambda: random.randint(0,255)
    print type(centroid_color)
    cv2.fillPoly(im,cnt,centroid_color)
Automaton2000

Vous pouvez passer un tableau numpy directement comme argument de couleur comme ceci:

import numpy as np
import cv2

pts = np.array([[[10,40], [70,16], [100,90] ]], np.int32)
im = np.zeros([240,320, 3], np.uint8)
color = np.array((60,0,255))
cv2.fillPoly( im, pts, color)


cv2.imshow(" ", im)
cv2.waitKey(1)

Bien sûr, il est également possible (bien que inutile) de l'écrire comme ceci:

clr = np.array([255, 0, 128])
cv2.fillPoly( im, pts, color=(clr[0], clr[1], clr[2]))

Edit: Opencv nécessite que l'argument color soit un tableau de type float ou integer. Le type que vous obtenez d'une image RVB à 3 canaux est probablement uint8. Essayez d'ajouter

centroid_color = centroid_color.astype(np.int32, copy=False)

avant de passer l'argument de couleur à cv2.fillPoly!

Le message d'erreur opencv est un peu déroutant ici ...

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Comment passer un numpy.ndarray ou keras metrix comme entrée keras

Comment convertir un opencv Mat en numpy.ndarray?

Comment écrire un ndarray numpy dans un fichier texte?

Kotlin - Comment passer un Runnable comme ceci dans Handler

comment passer le groupe actuel comme argument dans un groupby?

Comment passer des variables dans un script shell comme arguments?

Comment passer un long comme offset dans stream.read?

Comment passer un HashMap comme entrée secondaire dans Dataflow

comment passer un lien comme paramètre dans l'url

comment passer un objet comme accessoire dans nextjs

Comment faire persister les valeurs dans un numpy ndarray

Passer un ndarray dans une fonction

Comment passer la ressource couleur comme paramètre (Android)

Python - comment passer un dictionnaire dans defaultdict comme valeur et non comme référence

Comment passer un booléen à un paramètre de commutateur dans Azure Cli (comme dans powershell) ?

Comment passer un tableau comme résultat d'un composant fonctionnel à un autre dans React

Comment créer un événement marqué comme un grand cercle de couleur dans FSCalendar - Swift?

Comment passer un slot comme argument

Comment passer un contexte comme paramètre

Comment passer un objet comme accessoire à un composant fonctionnel enfant dans React.js?

Comment passer un fichier comme argument au paramètre en Python dans un format spécifique?

Comment passer un composant comme accessoire à un autre composant dans Vue.js

Comment passer un mixin comme paramètre d'un autre mixin dans SASS

Comment passer un argument de fonction comme clé dans un dictionnaire en Python

Comment passer la sortie d'un graphique comme entrée à un autre graphique dans tensorflow

Passer "* ()" comme argument à un programme dans bash

Passer un tableau comme argument dans golang

Bouton d'action flottant: comment changer la couleur de démarrage et la couleur de surbrillance comme dans un RaisedButton?

comment soustraire chaque élément d'un ndarray avec chaque élément d'un autre ndarray dans numpy

TOP liste

  1. 1

    comment afficher un bouton au-dessus d'un autre élément ?

  2. 2

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  3. 3

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

  4. 4

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  5. 5

    Conversion double en BigDecimal en Java

  6. 6

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  7. 7

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  8. 8

    Passer la taille d'un tableau 2D à une fonction ?

  9. 9

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  10. 10

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  11. 11

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  12. 12

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  13. 13

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  14. 14

    Exporter la table de l'arborescence vers CSV avec mise en forme

  15. 15

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  16. 16

    Créer un système Buzzer à l'aide de python

  17. 17

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  18. 18

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  19. 19

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  20. 20

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  21. 21

    Microsoft.WebApplication.targets

chaudétiquette

Archive