I am trying to turn the perspective of an image so that I get a result that gives the front view perspective. I am using cv2.WarpPerspective function. However, on performing warp, some parts of the image are getting cut off. How can I avoid this? An option I thought is to find the transformation matrix for a specific part of the image and then apply that matrix to the whole image. However, that method is not yielding desirable results.
The code I am using is :
import numpy as np
import cv2
from google.colab.patches import cv2_imshow
img = cv2.imread("drive/My Drive/Images_for_Adarsh/DSC_0690.JPG")
height,width = 1000,1500
img = cv2.resize(img,(width,height))
pts1 = np.float32([[ 250, 0],[1220, 300],[1300, 770],[ 250, 860]])
pts2 = np.float32([[0,0],[width,0],[width,height],[0,height]])
matrix = cv2.getPerspectiveTransform(pts1,pts2)
print(matrix.shape)
print(matrix)
imgOutput = cv2.warpPerspective(img,matrix,(width,height))
cv2_imshow(imgOutput)
cv2.imwrite("drive/My Drive/PerspectiveWarp-Results1/0690_coarse/0690([[ 250, 0],[1220, 300],[1300, 770],[ 250, 860]]).JPG",imgOutput)
The input image:

The warped image:


