1

I made a little python script that produce some 3D points coordinates, deriving them from stereo vision (2 IR cameras). 3D coordinates are certainly correct.

Now I have a third RGB camera and I was given the calibration matrices (I can't verify them): K is the matrix of intrinsics and R,t are the component of extrinsic parameters. The RGB image is 1280x800 But I can't set the right correspondence.

I thought it would be easy use the projection formula, deriving the projection matrix "Pcolor" as Pcolor = K[R|t] and re-projecting the XYZ 3D coordinates (named "Pworld") as it follows: enter image description here

I expected to obtain (u,v,w) so I normalized the result dividing it by w.

#import numpy as np
ExtrColor = np.concatenate((Rcolor,Tcolor), axis = 1)
#Rcolor is the 3x3 rotation matrix, Tcolor the column translation array
# after calculation of X,Y,Z
Pworld = np.matrix([[X], [Y], [Z], [1]])
Pcolor = np.dot((np.dot(Kcolor,ExtrColor)),Pworld)
u = round(Pcolor[0,0]/Pcolor[2,0])
v = round(Pcolor[1,0]/Pcolor[2,0])

Then I found that I obtain u and v values greater than 12000 instead of being in the range of the image (x<1280 and y<800).

I can't figure out what is the problem. Has anyone ever got a similar problem? I don't think about problem of scale factor in XYZ coordinates, it should be ineffective in this formulation of the problem . Is a problem of my usage of np.dot? I'm quite sure it is a small error but I can't see it.

Thanks for answering (and sorry for the poor english) !

I checked similar questions in stack-overflow, here the problem seems to be similar but the method is different.

PS This time I do not want to obtain the result using openCV or other libraries of functions, if it is possible

1 Answer 1

0

Updating: The problem seems to be this: calibration of the two cameras (IR and RGB) were not made with the same standards, both accepted as true.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.