OpenCV: le réglage de tous les pixels de spécifique BGR valeur à une autre BGR valeur

Je suis en utilisant OpenCV avec Python. J'ai une image, et ce que je veux faire est de régler tous les pixels de BGR valeur [0, 0, 255] [0, 255, 255].

J'ai demandé à un question précédente sur la façon d'isohélie d'une image, et de la réponse que j'ai appris à propos de l'indexation avec un Tableau d'indices, par ex:
image[image > 128] = 255

Je comprends comment cela fonctionne, puisque l'image > 128 retournera un tableau de tableaux multi-dimensionnels des indices qui satisfont à la condition, et j'applique ensuite ce tableau à l'image et de la mettre à 255. Cependant, je suis de se confondre avec la façon de prolonger de ce fait une valeur d'un tableau.

J'ai essayé de faire ce qui suit:

      red = np.array([0, 0, 255])
      redIndex = np.where(np.equal(image, red))
      image[redIndex] = np.array([0, 255, 255])

mais ça ne fonctionne pas, avec l'erreur:

ValueError: array is not broadcastable to correct shape

Est-il un moyen efficace pour gérer cela?

J'ai besoin d'une réponse en Python, espérons-le à l'aide de quelque chose de disponible avec NumPy, pas du C++, il n'est donc pas un doublon.
Salut, voulez-vous de créer une image avec tous les éléments [0,255,255] ou tout simplement de changer tous les éléments dans une image avec la valeur [0,0,255] [0,255,255]?
Salut, je voudrais changer tous les éléments dans une image avec la valeur [0,0,255] [0,255,255], merci

OriginalL'auteur steve8918 | 2012-07-11