Implemented custom intrinsic matrix undistortion.

This commit is contained in:
Daniel
2025-02-28 12:56:28 +01:00
parent 0f2d597899
commit 1d259846fc
5 changed files with 638 additions and 434 deletions

View File

@ -17,13 +17,24 @@ public:
CameraInternal(const Camera &cam);
Camera cam;
cv::Mat K;
cv::Mat DC;
cv::Mat R;
cv::Mat T;
cv::Mat P;
void update_projection_matrix();
std::array<std::array<float, 3>, 3> invK;
std::array<std::array<float, 3>, 3> invR;
std::array<float, 3> center;
static std::array<std::array<float, 3>, 3> transpose3x3(
const std::array<std::array<float, 3>, 3> &M);
static std::array<std::array<float, 3>, 3> invert3x3(
const std::array<std::array<float, 3>, 3> &M);
static void undistort_point_pinhole(std::array<float, 3> &p, const std::vector<float> &k);
static void undistort_point_fisheye(std::array<float, 3> &p, const std::vector<float> &k);
std::array<std::array<float, 3>, 3> calc_optimal_camera_matrix_fisheye(
float balance, std::pair<int, int> new_size);
std::array<std::array<float, 3>, 3> calc_optimal_camera_matrix_pinhole(
float alpha, std::pair<int, int> new_size);
};
// =================================================================================================