Ask Your Question

Revision history [back]

3D calibration in OpenCV without chessboard images?

It takes me a long time to get functions to work in OpenCV so I'd like to know whether my overall plan makes sense before I dive into the details of trying to make it happen. (Open CV 2.3.1, Windows 7, C++) I'd be appreciative of any advice.

Problem:

I work at a skeet range & want to learn 3D information about the flight of the clay targets until they're hit.

Data:

  1. The two cameras (eventually there will be a few more) are yards apart so it's not practical to make a chessboard large enough for them to both see.

  2. There are several trees between 50 to 100 yards each side of the sloping hill target area that cover the field of view of each camera at least horizontally. I've measured distance to specific spots (like the junction of 1st left limb with trunk) on each of them.

Plan

  1. Put the tree positions into an objectPoints vector as Point3f objects

  2. Find the points they appear on each camera's image at and put those Point2f objects into an imagePoints vector for each camera

  3. Stereo calibrate

Questions

  1. Is my plan even in the ballpark?

If it is

  1. would it be better to calibrate each camera by itself with a chessboard that's feet from the camera then pass the intrinsic and distCoeffs matrices to stereoCalibrate?

  2. If I stereoCalibrate without a chessboard what should I pass as Size to the function?

Thank you for any help. Charles