人生生きていると画像をマージしたいタイミングに出逢うこともあるかと思います。
そういった時はこちらでマージできます。
基本的なnumpyの操作ですが備忘録として残しておきます。
merge_image.py
def merge_image(original: np.ndarray, mask: np.ndarray, thresh: int = 0) -> np.ndarray:
"""画像にマスクをマージする。
Args:
original (np.ndarray): cv2.imread()で読み込んだRGB(3channel)画像
mask (np.ndarray): cv2.imread()で読み込んだグレースケール(1channel)画像
thresh (int): マスクのしきい値。
Returns:
np.ndarray: マージされたRGB(3channel)画像
"""
## マスクする部分を初期化
mask_condition = mask > thresh
for i in range(3):
original[mask_condition, i] = 0
## マスクを加える(必要に応じて色を変更してください。)
original[:, :, 0] += mask
original[:, :, 1] += mask
# original[:, :, 2] += mask
return original