OpenCV: Einstellung alle Pixel eines bestimmten BGR Wert zu einem anderen BGR Wert

Ich bin mit OpenCV mit Python. Ich habe ein Bild, und was ich tun möchte, ist setzen alle Pixel der BGR-Wert [0, 0, 255] auf [0, 255, 255].

Fragte ich einen Vorherige Frage, wie Posterisieren Sie ein Bild, und aus der Antwort, die ich gelernt, über die Indizierung für ein Array von Indizes, für die ex:
Bild[image > 128] = 255

Ich verstehe, wie das funktioniert, da Bild - > 128 liefert ein array von multi-dimensionales array von Indizes, welche die Bedingung erfüllen, und dann habe ich das array auf das Bild und legen Sie diese auf 255. Allerdings bin ich immer verwirrt, wie zu verlängern, dies zu tun, einen Wert für ein array.

Ich habe versucht zu tun, die folgenden:

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

aber es funktioniert nicht, mit der Fehlermeldung:

ValueError: array is not broadcastable to correct shape

Gibt es eine effiziente Möglichkeit, dies zu behandeln?

  • Ich brauche eine Antwort in Python hoffentlich mit etwas zur Verfügung, mit NumPy, kein C++, also ist es nicht ein Duplikat.
  • Hi, willst du ein Bild erstellen, in dem alle Elemente [0,255,255] oder ändern Sie einfach alle Elemente in einem Bild mit dem Wert [0,0,255] zu [0,255,255]?
  • Hi, ich würde gerne ändern, dass alle Elemente in einem Bild mit dem Wert [0,0,255] zu [0,255,255], danke
InformationsquelleAutor steve8918 | 2012-07-11
Schreibe einen Kommentar