Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

画像を合成する

やること
  • ファイル名を指定して2つの画像ファイルを読み出す
  • 画像を合成し別ウィンドウで表示する
  • キー入力で表示用ウィンドウを破棄し終了
使った関数
  • cv2.imread : 画像ファイルの読み出し
  • cv2.addWeighted : 配列の加重合計を求める
  • cv2.imshow : 画像を別ウィンドウに表示する
環境
  • windows10 home
  • Anaconda 3/ jupyter notebook 5.6.0
  • Python 3.7.0
  • OpenCV 4.0.0
準備

画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、 画像をセピア調にするでセピア調にしたものをjupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。 合成するためには2つの画像のサイズが同じ必要があります。

f:id:T_A_T:20190306210251j:plain
coffee_sepia.jpg
f:id:T_A_T:20190306210330j:plain
wall_sepia.jpg

コード
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() #ウインドウを閉じる

実行結果

f:id:T_A_T:20190306210632p:plain

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村