画像を斜めから見たように変形させる方法についてメモします。
やろうとしていること
400*400の画像を左側から見たように変形します。左側の上下を広げます。
準備
Pythonでやります。
OpenCVのインストールは次の通り。
pip install opencv-python
NumPyのインストールは次の通り。
pip install numpy
コード
400*400の画像の四隅のうち、左上を上に100ピクセルずらし、左下を下に100ピクセルずらします。
処理後に画像が表示されます。キーを何か押すと消えます。
最後に生成されたファイルを保存します。
import cv2
import numpy as np
# 画像を読み込む
image = cv2.imread('sample.png')
# 変換前の4点
pts1 = np.float32([[0, 0], [400, 0], [0, 400], [400, 400]])
# 変換後の4点(歪み変形させる)
pts2 = np.float32([[0, -100], [400, 0], [0, 500], [400, 400]])
# 透視変換行列を計算
M = cv2.getPerspectiveTransform(pts1, pts2)
# 透視変換を適用
dst = cv2.warpPerspective(image, M, (400, 400))
# 結果を表示
cv2.imshow('Perspective Transform', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite('transform.png', dst)
import numpy as np
# 画像を読み込む
image = cv2.imread('sample.png')
# 変換前の4点
pts1 = np.float32([[0, 0], [400, 0], [0, 400], [400, 400]])
# 変換後の4点(歪み変形させる)
pts2 = np.float32([[0, -100], [400, 0], [0, 500], [400, 400]])
# 透視変換行列を計算
M = cv2.getPerspectiveTransform(pts1, pts2)
# 透視変換を適用
dst = cv2.warpPerspective(image, M, (400, 400))
# 結果を表示
cv2.imshow('Perspective Transform', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite('transform.png', dst)
コメント