本日は python の技術調査と環境構築枠です。
pythonでOpenCVを利用して画像を合成して保存する方法を記事にします。
以下の環境構築手順などで pip をインストール済みの環境であることが前提となります。
bluebirdofoz.hatenablog.com
opencv-pythonのインストール
pip をインストール済みの環境であれば、以下のコマンドで opencv-python がインストール可能です。
pip install opencv-python
VisualStudioCode のコンソールで実行してみます。
以下の通り、Successfully installed が表示されれば成功です。
opencv-python のほか、numpy ライブラリも同時にインストールされます。
2つの画像を合成して保存する
早速、opencv-python を使って2つの画像を合成して保存するスクリプトを作成しました。
・image_synthesis.py
# cv2インポート(画像処理のため) import cv2 # 画像を合成する(アルファブレンド) # 引数 arg_synthesisfiledir:結合画像ディレクトリ # arg_imagefilename01:合成元画像名1 # arg_imagefilename02:合成元画像名2 # arg_synthesisfilename:合成画像ファイル名 # 戻り値 def image_synthesis_addWeighted( arg_synthesisfiledir='D:\\WORK\\Texture', arg_imagefilename01='NewTexture01.png', arg_imagefilename02='NewTexture02.png', arg_synthesisfilename='SynTexture.png'): # 画像のファイルパスを取得する imagefilepath01 = arg_synthesisfiledir + '\\' + arg_imagefilename01 imagefilepath02 = arg_synthesisfiledir + '\\' + arg_imagefilename02 synthesisfilepath = arg_synthesisfiledir + '\\' + arg_synthesisfilename # 画像を読み込む image01 = cv2.imread(imagefilepath01) image02 = cv2.imread(imagefilepath02) # 画像を合成する synthesis = cv2.addWeighted(src1=image01,alpha=1.0,src2=image02,beta=1.00,gamma=0) # 合成した画像を保存する cv2.imwrite(synthesisfilepath, synthesis) return # 実行例 image_synthesis_addWeighted( arg_synthesisfiledir='D:\\Python\\ImageSynthesis\\SampleImage', arg_imagefilename01='00_T_image.png', arg_imagefilename02='01_E_Image.png', arg_synthesisfilename='SynTexture.png'):
スクリプトを実行してみます。
以下の通り、指定ディレクトリの2つの画像が合成されて新しい画像が出力されました。
先に指定した画像に、後に指定した画像が重なる形で合成されます。
実行例では後に指定した画像の背景を透過色にしています。