tmp

# 必要なモジュールをインポート
import cv2
import numpy as np

# 画像Aと画像Bのファイルパスを指定
img_a_path = "img_a.jpg"
img_b_path = "img_b.jpg"

# 画像Aと画像Bを読み込む
img_a = cv2.imread(img_a_path)
img_b = cv2.imread(img_b_path)

# 画像Aと画像Bのサイズを取得
h_a, w_a, _ = img_a.shape
h_b, w_b, _ = img_b.shape

# 画像Bを画像Aの中央に貼り付けるための座標を計算
x = (w_a - w_b) // 2
y = (h_a - h_b) // 2

# 画像Bの縁にぼかしを入れるためのマスクを作成
# マスクは画像Bと同じサイズで、中央は白く、縁は黒くなるようにする
mask = np.zeros((h_b, w_b), dtype=np.uint8)
mask = cv2.rectangle(mask, (0, 0), (w_b, h_b), 255, -1) # 全体を白く塗る
mask = cv2.rectangle(mask, (10, 10), (w_b - 10, h_b - 10), 0, -1) # 中央を黒く塗る
mask = cv2.GaussianBlur(mask, (21, 21), 0) # ガウシアンフィルタでぼかす

# 画像Bにマスクを適用して、縁にぼかしを入れる
img_b_blur = cv2.bitwise_and(img_b, img_b, mask=mask)

# 画像Aに画像Bを貼り付ける
img_a[y:y+h_b, x:x+w_b] = img_b_blur

# 結果を表示
cv2.imshow("Result", img_a)
cv2.waitKey(0)
cv2.destroyAllWindows()