
まくまく
Numpyを使用して画像にドーナツ型のマスクをかけてみようと思います。
この写真を使って、3種類のマスクをかけてみようと思います。
画像の外側にマスク。境界はぼかし処理を実施しています。
画像の内側にマスク。
最後は二つのマスクを組み合わせてドーナツ型(リング型)にしてみました。
サンプルプログラム
#ライブラリのインポート
import cv2
import numpy as np
#画像読み込みm
img = cv2.imread('photo.jpeg')
#ドーナツ型マスク
mask = np.zeros_like(img)
cv2.circle(mask, (512, 342), 400, (255, 255, 255), thickness=-1)
cv2.circle(mask, (512, 342), 200, (0, 0, 0), thickness=-1)
mask_blur = cv2.GaussianBlur(mask, (99, 99), 0)
img_mask = img * (mask_blur / 255 )
#外側、または内側のみのマスクは以下
"""
#外側マスク
mask = np.zeros_like(img)
cv2.circle(mask, (512, 342), 300, (255, 255, 255), thickness=-1)
mask_blur = cv2.GaussianBlur(mask, (99, 99), 0)
img_mask = img * (mask_blur / 255 )
#内側マスク
mask = np.zeros_like(img)
cv2.circle(mask, (512, 342), 300, (255, 255, 255), thickness=-1)
mask_blur = cv2.GaussianBlur(mask, (99, 99), 0)
mask_blur2 = cv2.bitwise_not(mask_blur)
img_mask = img * (mask_blur2 / 255 )
"""
cv2.imwrite('mask_out.jpg', img_mask)