スポンサーリンク
スポンサーリンク

【OpenCV】マスク処理を使って、画像を重ね合わせる【Python】

マスク処理を行えば、画像を重ね合わせることができます。

例えばこの2つの画像を重ね合わせます。

すると、このように合成されます。

これがマスク処理です。

また、右側の白黒の画像は「マスク画像」と言い、基本的には両方の画像のサイズが一緒である方が都合が良いです。

 

それでは実際にマスク処理を行なっていきます。

なお、今回使用する画像は先ほど紹介した2つの画像ですので、そちらを使いたい場合はご自由にダウンロードしてください。

画像を読み込む

まずは画像を読み込んでいきます。

画像を読み込む際は「imread」関数を使います。

(main.py)

マスク処理用の変数を作成

マスク処理を行う際は、マスク処理された画像を保存するための変数を作っていきます。

これは決まり事ではないのですが、画像ごとに変数を分けた方がわかりやすいのでこうします。

(main.py)

「zeros」関数の第1引数を解説すると、「高さ・幅・色のチャンネル数」となります。

色のチャンネル数ですが、今回は「青・緑・赤」の3つが必要なので「3」にします。

「zeros」関数で作成された配列変数は、すべての配列に「0」が代入された状態になります。

 

ちなみにこの状態の「dst」変数は、「512×512(今回使用している画像のサイズ)」の真っ黒な画像です。

マスク処理を行う

それでは実際にマスク処理を行なっていきます。

(main.py)

隠れていない部分を判定する際に「241以上」にした理由ですが、真っ白を意味する「255」にしてしまうと微妙にアンチエイジングがかかっているマスク画像の場合にノイズが生じてしまいノイズを消すために良い感じに値を設定する必要があるからです。

そして「all」関数ですが、これは「3つのチャンネル全てが」を意味します。

画像処理ではよく使う関数なので、覚えておいた方が良いと思います。

 

では、マスク処理ができたので、実際にマスク処理された画像を表示してみましょう。

(main.py)

これで画像が無事、表示することができました!

コメント