【OpenCV】 forループを使わずに指定した色を別の色に変更する
ディープラーニングの前処理として、画像のある色を別の色に変更しようとしていました。ただ、NumPyではforループをなるべく使用しないことが推奨されているため、どうやって実現すれば良いのか悩んでいましたが、ここ(Replace a range of colors with a specific color in python - OpenCV Q&A Forum)にアドバイスがありました。
import cv2 import numpy as np image = cv2.imread('lenna.jpg') # 画像の黒い部分を白に置き換える black = [0, 0, 0] white = [255, 255, 255] image[np.where((image == black).all(axis=2))] = white