Nine DOF pinhole camera calibration using Computer Vision Toolbox?

2 次查看(过去 30 天)
I have a set of 3D world points and corresponding 2D image points. Using these, I would like to do a single pinhole camera calibration with 9 degrees of freedom. In other words, I know that I have no camera distortion or skew and that my 2D pixel scaling is the same in x and y (so I have only 3 intrinsic parameters).
Is there a way to do this restricted form of calibration using Computer Vision Toolbox functions? I have been looking at estimatecameraParameters() in R2015. However, this function does not appear to give the option of turning off radial distortion estimation. It also does not appear to give the option of estimating with fewer than 4 intrinsic parameters.

采纳的回答

Dima Lisin
Dima Lisin 2015-12-4
编辑:Dima Lisin 2015-12-4
I don't think estimateCameraParameters is suitable for this. It implements the calibration algorithm by Zhengyou Zhang, which assumes multiple images of a planar calibration pattern.
If you have a single set of non-coplanar 3D points, and their corresponding image points, then you should use the Tsai calibration algorithm.
On the other hand, if you do have multiple images of a planar calibration pattern, then you can simply edit estimateCameraParameters.m and comment out the call to refine() method. That will skip the non-linear optimization step, and just give you a closed-form solution of the intrinsics and the extrinsics, assuming no distortion. Needless to say, that means you would be editing a built-in MATLAB file at your own risk.
  5 个评论
Dima Lisin
Dima Lisin 2015-12-4
Hi Matt,
That's an interesting use case. Thank you. The calibration tools in the Computer Vision System Toolbox are indeed designed with the photographic or infra-red cameras in mind. X-Ray is whole different ball-game.
Matt J
Matt J 2015-12-13
Hi Dima,
Just to add a further footnote here, I did read the article in your link on Tsai's algorithm, but it appears to be an approximate algorithm only. The article describes it really as just a way of initializing a more rigorous iterative nonlinear estimation.
Th bottom line seems to be that if you want to do calibration with 3D-to-2D data and any fewer than 11 degrees of freedom, you really just need to go over to the Optimization Toolbox.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB Support Package for USB Webcams 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by