今回の記事はopencvを用いて画像を水増しする方法を記載します。
opencvはかなり便利なので画像処理を色々行うことができます。しかし、今回はその中でも画像の射影変換を行う方法を記載します。
opencvの他の記事はまとめてリンク貼っておきますので気になる方は参考にしてどんどん画像処理行ってください。
OpenCV を用いて斜め画像を生成する方法(射影変換)
使用する画像は下記です。
import cv2
import numpy as np
#画像読み込み
img = cv2.imread("/1002/hatena.jpg")
#リサイズ
img = cv2.resize(img,(100,100))
cv2.imwrite('./result/' + 'hatena_sonomama.jpg' , img)
#射影変換(上への傾き画像生成)
rows,cols,ch = img.shape
pts1 = np.float32([[0,0],[100,0],[0,100],[100,100]])
pts2 = np.float32([[20,0],[80,0],[0,100],[100,100]])
M = cv2.getPerspectiveTransform(pts1,pts2)
img_syaei = cv2.warpPerspective(img,M,(100,100))
cv2.imwrite('./result/' + 'hatena_syaei.jpg' , img_syaei)
下記が出力される画像です。
画像を下から見上げているような画像を生成できます。
pts1が元の画像の4点の座標を表しております。
こちらでは元の画像サイズに合わせておきます。
次に歪ませる際の画像の4すみの座標をpts2で指定します。上記のような画像は上方向に狭めていくので座標のX座標を少し編集します。
この他にも様々な画像の水増し方法をまとめております。
是非参考にしてください。
コメント