- マスク画像の作成: 画像マスキングでは、まずマスク画像を作成する必要があります。マスク画像は、元の画像と同じサイズの2値画像であり、対象の領域を白で表し、それ以外の領域を黒で表します。例えば、OpenCVを使用して以下のようにマスク画像を作成できます。
import cv2
import numpy as np
# 元の画像を読み込む
image = cv2.imread("image.jpg")
# マスク画像を作成する
mask = np.zeros(image.shape[:2], dtype=np.uint8)
cv2.rectangle(mask, (100, 100), (300, 300), 255, -1) # 長方形の領域を選択
# マスク画像を表示する
cv2.imshow("Mask", mask)
cv2.waitKey(0)
cv2.destroyAllWindows()
- マスキングの適用: マスク画像を使用して、元の画像から特定の領域を抽出することができます。以下は、OpenCVを使用してマスキングを適用する例です。
import cv2
# 元の画像を読み込む
image = cv2.imread("image.jpg")
# マスク画像を作成する
mask = cv2.imread("mask.jpg", 0) # 2値マスク画像を読み込む
# マスキングを適用する
masked_image = cv2.bitwise_and(image, image, mask=mask)
# マスキング後の画像を表示する
cv2.imshow("Masked Image", masked_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
- その他のマスキングの手法: 上記の例では、固定の領域を選択しましたが、より高度なマスキング手法もあります。たとえば、セグメンテーション手法を使用して物体の輪郭を検出し、それをマスクとして使用することができます。さらに、ディープラーニングを活用した画像セグメンテーションの手法もあります。
以上が、画像マスキングの基礎とコード例の紹介です。これらの手法を使用することで、特定の領域を抽出したり、画像処理のタスクを実行したりすることができます。