画像を合成する
やること
- ファイル名を指定して2つの画像ファイルを読み出す
- 画像を合成し別ウィンドウで表示する
- キー入力で表示用ウィンドウを破棄し終了
使った関数
- cv2.imread : 画像ファイルの読み出し
- cv2.addWeighted : 配列の加重合計を求める
- cv2.imshow : 画像を別ウィンドウに表示する
環境
準備
画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、 画像をセピア調にするでセピア調にしたものをjupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。 合成するためには2つの画像のサイズが同じ必要があります。
コード
import cv2 #OpenCVのインポート fname_1 = "coffee_sepia.jpg" #1つ目の画像ファイル名 fname_2 = "wall_sepia.jpg" #2つ目の画像ファイル名 img_1 = cv2.imread(fname_1) #1つ目の画像を読み出しオブジェクトimg_1に代入 img_2 = cv2.imread(fname_2) #2つ目の画像を読み出しオブジェクトimg_2に代入 #img_1,img_2の加重合計を求め、imgに代入。img_1 X 0.8 + img_2 X 0.2 + 0 img=cv2.addWeighted(img_1, 0.8, img_2, 0.2 , 0) cv2.imshow("weighted sum",img) #別ウィンドウ"weighted sum"を開きimgを表示 cv2.waitKey(0) #キー入力待ち cv2.destroyAllWindows() #ウインドウを閉じる
実行結果