I'm working on
depth map with OpenCV. I can obtain it but it is reconstructed from the left camera origin and there is a little tilt of this latter and as you can see on the figure, the depth is "shifted" (the depth should be close and no horizontal gradient):
I would like to express it as with a zero angle, i try with the warp perspective function as you can see below but i obtain a null field...
P = np.dot(cam,np.dot(Transl,np.dot(Rot,A1))) dst = cv2.warpPerspective(depth, P, (2048, 2048))
#Projection 2D -> 3D matrix A1 = np.zeros((4,3)) A1[0,0] = 1 A1[0,2] = -1024 A1[1,1] = 1 A1[1,2] = -1024 A1[3,2] = 1 #Rotation matrice around the Y axis theta = np.deg2rad(5) Rot = np.zeros((4,4)) Rot[0,0] = np.cos(theta) Rot[0,2] = -np.sin(theta) Rot[1,1] = 1 Rot[2,0] = np.sin(theta) Rot[2,2] = np.cos(theta) Rot[3,3] = 1 #Translation matrix on the X axis dist = 0 Transl = np.zeros((4,4)) Transl[0,0] = 1 Transl[0,2] = dist Transl[1,1] = 1 Transl[2,2] = 1 Transl[3,3] = 1 #Camera Intrisecs matrix 3D -> 2D cam = np.concatenate((C1,np.zeros((3,1))),axis=1) cam[2,2] = 1 P = np.dot(cam,np.dot(Transl,np.dot(Rot,A1))) dst = cv2.warpPerspective(Z0_0, P, (2048*3, 2048*3))
EDIT LATER :
You can download the 32MB field dataset here: https://filex.ec-lille.fr/get?k=cCBoyoV4tbmkzSV5bi6. Then, load and view the image with:
from matplotlib import pyplot as plt import numpy as np img = np.load('testZ0.npy') plt.imshow(img) plt.show()