画像のマスク処理について解説していきます。
目次
画像 マスク処理
ここでは、opencv
のbitwise_and
を使って画像にマスク処理を実施していきます。
こちらの美女のサンプル画像をMasterとし、星型の画像をMaskとします。
これら2つの画像サイズはそれぞれ、Master:1600×1066、Mask:2771×2659 となっており、めちゃくちゃです。

1600×1066

2771×2659
import cv2
# 画像の読み込み masterとmask
image_master = cv2.imread('master.jpg')
image_mask = cv2.imread('mask.jpg')
# 画像サイズの違いを吸収するため、リサイズします
image_mask = cv2.resize(image_mask, image_master.shape[1::-1])
print(image_mask.shape)
# (225, 400, 3)
result = cv2.bitwise_and(image_master, image_mask)
# 結果出力
cv2.imwrite('opencv_bitwise.jpg', result)

1600×1066
出力画像(opencv_bitwise.jpg)はこちらです。
Master画像のサイズに合わせてMask画像をリサイズしているため、星型が少し幅広になっています。
ピッタリと狙い通りに合わせたい時は、事前に2つの画像に対してサイズ変更処理を加えて、画像サイズを揃えておいた方が良いかと思います。