Python OpenCV3でマスク合成(空飛ぶダンボー)
背景となる画像から貼り付ける画像の部分を切り抜いて、貼り付ける画像を貼り付ける。
ちょっといつもよりはフクザツ。
[amazonjs asin="4061538225″ locale="JP" title="OpenCVによる画像処理入門 (KS情報科学専門書)"]
前提
元画像
空の画像(sora.jpg)にダンボーの画像(dambo3.jpg) を貼り付ける。
マスク合成
マスク合成をやってみる。
sourceディレクトリにmask_composition.pyを作成する。
[python title="mask_composition.pyの内容"]
# -*- coding: UTF-8 -*-
import cv2
import math
import numpy as np
import os
if __name__ == '__main__’:
# 画像の読み込み
img_src1 = cv2.imread("./image/sora.jpg", 1)
img_src2 = cv2.imread("./image/dambo3.jpg", 1)
# ダンボー画像をグレースケール化
img2_gray = cv2.cvtColor(img_src2, cv2.COLOR_BGR2GRAY)
# マスク画像を生成するために二値化
img_maskg = cv2.threshold(img2_gray, 220, 255, cv2.THRESH_BINARY_INV)[1]
# マスク画像を生成する
img_mask = cv2.merge((img_maskg,img_maskg, img_maskg))
# img_src2からマスク画像の部分だけを切り出す
img_src2m = cv2.bitwise_and(img_src2, img_mask)
# マスク画像の白黒を反転
img_maskn = cv2.bitwise_not(img_mask)
# img_src1からimg_msknの部分を切り出す
img_src1m = cv2.bitwise_and(img_src1, img_maskn)
# img_src1、img_src2の切り出し画像を合成
img_dst = cv2.bitwise_or(img_src1m, img_src2m)
# 表示
cv2.imshow("Show MASK COMPOSITION Image", img_dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
[/python]
実行。
[shell]
(opencv_python)$ python mask_composition.py
[/shell]
雑な感じだけど、飛んでる。
ディスカッション
コメント一覧
まだ、コメントがありません