2枚の画像から中間画像を生成する(Python, OpenCV)
目次
はじめに
![たっつー](http://www.fast-system.jp/wp-content/uploads/2018/09/thumb_b181dc6f5c1a5e6be8b884c95bee44ea.png)
たっつー
こんにちは、のんびりエンジニアのたっつーです。
Twitter(@kingyo222)で Unity情報 を発信しているのでよければフォローしてください!
2枚の画像から中間画像をさくっと生成したかったので opencv を使って書いてみました。
メモ程度の内容ですが誰かの参考になればと思います。
ソースコード
generator.py
#coding:utf-8
import numpy
import cv2
split = 10
imgStart = cv2.imread("start.jpg")
imgEnd = cv2.imread("end.jpg")
# 0.0~1.0
imgStart = (imgStart / 255)
imgEnd = (imgEnd / 255)
calc = split - 1
for i in range(split):
imgTmp = (imgStart / calc * (calc - i)) + (imgEnd / calc * i)
imgRes = cv2.resize(imgTmp,(640, 480))
cv2.imshow("color", imgRes)
cv2.imwrite(str(i) + ".jpg", imgTmp * 255)
cv2.waitKey(10)
cv2.waitKey(0)
cv2.destroyAllWindows()
実行結果
実行前
generator.py / start.jpg / end.jpg の3ファイルがある状態で実行します。
![](http://www.fast-system.jp/wp-content/uploads/2019/07/733ecac7-41b0-0696-5d41-3cfdd3c84a68.png)
コマンド
python generator.py
実行後
0.jpg ~ 9.jpg の計10枚の画像が出力されました。
![](http://www.fast-system.jp/wp-content/uploads/2019/07/eb053f79-1e84-3421-b149-132aa4a5426d.png)
よければ、SNSにシェアをお願いします!