Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

Extrinsic parameters, camera calibration


invancea a écrit :

 

The projection matrix is H (Homography) and this is what you get out of IMAQ Get Camera Parameters. You can construct camera matrix (M) out of Focal Length and Optical center. Matrix W = [R T] can be computed by using M and H.


What are the units of the projection matrix ?

To calculate the matrix W I have to multiply the inverse of M and H, I can construct the M-matrix in pixels or milimeters (by conversion using the cell-width) using the VI "get camera parameters", but I don't know how using the matrix H...

(the documentation "In-Depth Discussion" is complicated, it's written : fx = F/sx, with F in milimeters and sx in pixels/milimeters --> the fx value is in square-milimeters per pixels ?!!!?)

 

I'm a little lost in all this concepts, I hope my questions are clear enough (and my english too Smiley Wink )

 
0 Kudos
Message 11 of 18
(3,607 Views)

Nobody has an idee to interprete the results of the calibration ?

0 Kudos
Message 12 of 18
(3,585 Views)

Hello,

 

maybe this can help you in some way:

 

http://forums.ni.com/t5/Machine-Vision/Camera-extrinsic-parameters-in-stereo-vision-calibration-and-...

 

Best regards,

K


https://decibel.ni.com/content/blogs/kl3m3n



"Kudos: Users may give one another Kudos on the forums for posts that they found particularly helpful or insightful."
0 Kudos
Message 13 of 18
(3,565 Views)

Thank you Klemen,

I've reaad this thread but I didn't understand what is wrong in my procedure...

For instance in this piece of code I would'like to obtain the rotation matrix, but the matrix at the end isn't a rotation matrix (non-normalized vectors, the vectors aren't perpendicular...).

get_camera_parameters.png

 

0 Kudos
Message 14 of 18
(3,551 Views)

I've the same problem

according to the help Cx and Cy need to be in [mm]

 

https://zone.ni.com/reference/en-XX/help/370281AC-01/nivisionconcepts/spatial_calibration_indepth/#h...

 

some one have found the soklution?

 

ciao

0 Kudos
Message 15 of 18
(2,875 Views)

Hi All

I've done some test

According to what is write on this Labview guide

http://www-cs.ccny.cuny.edu/~wolberg/capstone/opencv/LearningOpenCV.pdf

I think that the prjection matrix provided by the LV block "IMAQ Get Camera Parameters" is like this [R1 R2 T]

but need to manipulate with the SVD decomposition as describe on page 391.

With this trick det(R)=1 and R3=R1xR2

 

attached my VI with the value caming from my calibration

I will verify and validate the data as soon as possible.

 

Ciao

 

0 Kudos
Message 16 of 18
(2,841 Views)

Hey leonardoMM,

 

Were you able to verify and validate the output of the IMAQ Get Camera Parameters? Did you produce expected results for your Rotation Matrix throughout your tests?

 

 

0 Kudos
Message 17 of 18
(2,705 Views)

The problem of calculating the Extrinsics of the camera providing image points and world points refer to the documentation of Labview comparing with known Matlab function:

 

[R, t] = extrinsics(imagePoints, cam_params.WorldPoints, cam_params)

 

In Labview the vi Learn perspective calibration calculates matrix W=[r1 r2 t] (or not?)

The vi  Get Camera Parameters returns this projection matrix W. From what I found through the posts and documentation  I understand that projection matrix is the matrix W=[r1 r2 t].

 

From what people proposed we can decompose the matrix W and receive r1 r2 r3 vectors.

 

I am wondering why in Matlab the translation vector is a 3x1 which contains the offset in the Z direction of the checkerboard origin whereas in Labview it gives you a translation vector which does not contain Z.

 

If the vi Learn perspective calibration returns array H instead of W, where H=M*W  based on https://www.oreilly.com/library/view/learning-opencv-3/9781491937983/ page 407 the translation vector t=λ*(M^-1)*h3 where h3 is the 3x1 vector of array H.

 

I attach the array M of the intrinsic and the projection matrix. 

So the question is how to get the full translation vector t=[X Y Z 1] like Matlab function [R, t] = extrinsics(imagePoints, cam_params.WorldPoints, cam_params)

 

Thanks

Download All
0 Kudos
Message 18 of 18
(2,241 Views)