Python OpenCV3でマスク合成(空飛ぶダンボー)

Share on Facebook
Pocket
LINEで送る
Bookmark this on Google Bookmarks

背景となる画像から貼り付ける画像の部分を切り抜いて、貼り付ける画像を貼り付ける。
ちょっといつもよりはフクザツ。

 

前提

ディレクトリ構成などはこことかこことか。

 

元画像

空の画像(sora.jpg)にダンボーの画像(dambo3.jpg) を貼り付ける。

sora

 

dambo3

 

マスク合成

マスク合成をやってみる。
sourceディレクトリに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()

実行。

(opencv_python)$ python mask_composition.py

<div style=”clear: both;”>

 

雑な感じだけど、飛んでる。

 

Follow me!