CPPxDIC
C++ Digital Image Correlation library for fingertip 3D reconstruction
Loading...
Searching...
No Matches
cppxdic::stepsABC::StereoCalibration Class Reference

#include <stereo_calibration.h>

Static Public Member Functions

static std::vector< CalibPoint3D > generateCylindricalObject (const CylinderCalibSpec &spec)
 Port of generate_cylindrical_calibration_object_coordinate_file.m.
 
static bool writeObjectFile (const std::vector< CalibPoint3D > &pts, const std::string &path, std::string &error_message)
 Write generated 3D coordinates to a text file (one "x y z" per line).
 
static std::vector< CalibPoint3D > readObjectFile (const std::string &path, std::string &error_message)
 Read a "x y z" per line 3D coordinate file.
 
static std::vector< CalibPoint2D > readImagePointsFile (const std::string &path, std::string &error_message)
 Read a "u v" per line 2D image-point file (one per calibration dot).
 
static CameraDLT calcDLTParameters (int camera_id, const std::vector< CalibPoint2D > &image_points, const std::vector< CalibPoint3D > &object_points, std::string &error_message)
 Port of STEP1_CalcDLTparameters_rewrited.m for a single camera.
 
static CalibPoint3D reconstructPoint (const CameraDLT &cam1, const CalibPoint2D &p1, const CameraDLT &cam2, const CalibPoint2D &p2)
 Triangulate a 3D point from two cameras' DLT parameters and the matched image observations (linear least-squares DLT triangulation, Eigen solve).
 
static ReconstructionError reconstructionError (const CameraDLT &cam1, const std::vector< CalibPoint2D > &img1, const CameraDLT &cam2, const std::vector< CalibPoint2D > &img2, const std::vector< CalibPoint3D > &object_points, std::vector< CalibPoint3D > &reconstructed_out)
 DLT reconstruction-error metric: triangulate every calibration point from the two cameras and compare against the known object coordinates.
 
static StereoCalibrationResult calibrateStereoPair (int cam_first_id, const std::vector< CalibPoint2D > &img_first, int cam_second_id, const std::vector< CalibPoint2D > &img_second, const std::vector< CalibPoint3D > &object_points, std::string &error_message)
 Full StepC driver for one stereo pair: fit both cameras and compute the reconstruction error against the object coordinates.
 

Detailed Description

Definition at line 75 of file stereo_calibration.h.

Member Function Documentation

◆ calcDLTParameters()

CameraDLT cppxdic::stepsABC::StereoCalibration::calcDLTParameters ( int  camera_id,
const std::vector< CalibPoint2D > &  image_points,
const std::vector< CalibPoint3D > &  object_points,
std::string &  error_message 
)
static

Port of STEP1_CalcDLTparameters_rewrited.m for a single camera.

Fits the 11 DLT parameters from 2D<->3D correspondences (reusing Utils::DLT11Calibration) and computes the RMS image reprojection error.

Definition at line 110 of file stereo_calibration.cpp.

◆ calibrateStereoPair()

StereoCalibrationResult cppxdic::stepsABC::StereoCalibration::calibrateStereoPair ( int  cam_first_id,
const std::vector< CalibPoint2D > &  img_first,
int  cam_second_id,
const std::vector< CalibPoint2D > &  img_second,
const std::vector< CalibPoint3D > &  object_points,
std::string &  error_message 
)
static

Full StepC driver for one stereo pair: fit both cameras and compute the reconstruction error against the object coordinates.

Definition at line 237 of file stereo_calibration.cpp.

◆ generateCylindricalObject()

std::vector< CalibPoint3D > cppxdic::stepsABC::StereoCalibration::generateCylindricalObject ( const CylinderCalibSpec &  spec)
static

Port of generate_cylindrical_calibration_object_coordinate_file.m.

Generates the 3D coordinates of the calibration dots on the cylinder. Ordering: outer loop over rows (z), inner loop over columns (theta) — matching the MATLAB column-major dot ordering used by the marked images.

Definition at line 29 of file stereo_calibration.cpp.

◆ readImagePointsFile()

std::vector< CalibPoint2D > cppxdic::stepsABC::StereoCalibration::readImagePointsFile ( const std::string &  path,
std::string &  error_message 
)
static

Read a "u v" per line 2D image-point file (one per calibration dot).

Definition at line 92 of file stereo_calibration.cpp.

◆ readObjectFile()

std::vector< CalibPoint3D > cppxdic::stepsABC::StereoCalibration::readObjectFile ( const std::string &  path,
std::string &  error_message 
)
static

Read a "x y z" per line 3D coordinate file.

Definition at line 74 of file stereo_calibration.cpp.

◆ reconstructionError()

ReconstructionError cppxdic::stepsABC::StereoCalibration::reconstructionError ( const CameraDLT &  cam1,
const std::vector< CalibPoint2D > &  img1,
const CameraDLT &  cam2,
const std::vector< CalibPoint2D > &  img2,
const std::vector< CalibPoint3D > &  object_points,
std::vector< CalibPoint3D > &  reconstructed_out 
)
static

DLT reconstruction-error metric: triangulate every calibration point from the two cameras and compare against the known object coordinates.

Definition at line 201 of file stereo_calibration.cpp.

◆ reconstructPoint()

CalibPoint3D cppxdic::stepsABC::StereoCalibration::reconstructPoint ( const CameraDLT &  cam1,
const CalibPoint2D &  p1,
const CameraDLT &  cam2,
const CalibPoint2D &  p2 
)
static

Triangulate a 3D point from two cameras' DLT parameters and the matched image observations (linear least-squares DLT triangulation, Eigen solve).

Definition at line 169 of file stereo_calibration.cpp.

◆ writeObjectFile()

bool cppxdic::stepsABC::StereoCalibration::writeObjectFile ( const std::vector< CalibPoint3D > &  pts,
const std::string &  path,
std::string &  error_message 
)
static

Write generated 3D coordinates to a text file (one "x y z" per line).

Definition at line 60 of file stereo_calibration.cpp.


The documentation for this class was generated from the following files: