Python3 OpenCV3で平均値画像(Alpha Blending)を作成

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

2枚の画像を透過させて合成するような感じ。

 

前提

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

 

元画像

オレンジの画像(orange.jpg)とりんごの画像(apple.jpg)を合成する。
source/imageディレクトリに設置する。

apple

orange

 

addWeightedメソッドの使い方

平均値画像を求めるにはaddWeightedメソッドを使う。
addWeightedメソッドの使い方は以下のとおり。

cv2.addWeighted(img_src1, img_src1の重み付け, img_src2, img_src2の重み付け, ガンマ値)

重み付け値はimg_src1とimg_src2のどちらを強調するかを指定する。
ちょうど中間にするには両方の値を0.5、img_src1の方を強調したい場合は0.7,0.3など。

ガンマ値はガンマ補正の値。大きくすると明るく(白っぽく) なる。

 

平均値画像の生成

平均値画像を生成する。
sourceディレクトリにalpha_blending.pyを作成する。

# -*- coding: UTF-8 -*- 

import cv2
import math 
import numpy as np 
import os

if __name__ == '__main__':
    
    # 画像の読み込み
    img_src1 = cv2.imread("./image/apple.jpg", 1)
    img_src2 = cv2.imread("./image/orange.jpg", 1)

    img_ab = cv2.addWeighted(img_src1, 0.5, img_src2, 0.5, 0.0)

    # 表示
    cv2.imshow("Show ALPHA BLENDING Image", img_ab)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

実行してみる。

(opencv_python)$ python alpha_blending.py

スクリーンショット 2015-07-14 22.28.31

 

おまけ(ゴーストダンボー)

以下の2つの画像を合成してみた(dambo1.jpg, dambo2.jpg)。

dambo1

dambo2

すると、

スクリーンショット 2015-07-14 22.48.51

ダンボーが透明に。

 

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です