[Python]OpenCVの使い方入門 画像の合成処理を紹介

画像処理の大人気ライブラリOpenCVを用いた画像の合成処理を紹介

最近の画像処理の需要は目を見張るものがあります。私が所属している会社でも画像処理関係の仕事が増えてきています。

下に画像処理システムの世界市場を出しておきます。色々な業界で使われていますし,どの業界でも需要は増えていきそうですね。

この画像処理のプログラムを自力で全て実装するのは非常に難しいです。時間がいくらあっても足りないと思います。

そのため多くの人にとって画像処理ライブラリを使う事が選択肢になると思います。その中で私が一番オススメするのはOpenCVです。OpenCVは根強い人気を持つ画像処理ライブラリで,PythonもしくはC++で使えます。

今回はOpenCVを使った画像の合成を紹介していこうと思います。ただ世間一般的に言う画像の合成よりかは画像データの合算に近いです。

OpenCVによる画像合成 ソースコードも公開

画像処理のライブラリはたくさんありますが,今回はOpenCVというライブラリを使っていきます。使うプログラミング言語と開発環境は以下の通りになります。

  • プログラミング言語:Python3
  • 開発環境:Visual Studio2019 Professional

ちなみに,PythonでOpenCVライブラリを使う画像処理は割とテンプレートな形です。

OpenCVは簡単なプログラムだけで代表的な画像処理システムを構築できる大人気ライブラリです。

画像処理の基本についてはこちらの記事で,OpenCVによる画像の読込などはこちらの記事で紹介していますので是非見ていってください。

今回はサンプル画像として2020年11月時点で大人気を誇るVTuberである常闇トワ様と百鬼あやめ様の公式画像を使わせていただきます。

この2つの画像をそれぞれC:\Temp\towa.jpg、C:\Temp\ayame.jpg という名前で保存して以下のプログラムを実行するだけで2つの画像を合成することができます。

import cv2

img_towa = cv2.imread('C:/Temp/towa.jpg')     #これでimgに画像データが入る
img_ayame = cv2.imread('C:/Temp/ayame.jpg')    #これでimgに画像データが入る

dst = cv2.add(img_towa,img_ayame)     #2つの画像をくっつける
cv2.imwrite('C:/Temp/Add.jpg',dst)       #合成した画像を保存

たったこれだけです。画像を2つ指定してcv2.add関数に入れるだけです。その結果として出てくる画像が以下の通りです。

なんかピンぼけしたような光の調節を間違えたような画像ですね。これはcv2.add関数では単純な画像データの合成しかできないという事ですね。

そのためかなり光が強いような画像になってしまいます。このあたりを改善するには別の仕組みが必要になります。そのあたりも今後の記事で書いて行こうと思っています。

フォローしてくれると嬉しいです

コメントを残す

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