Changed all matrix types from fp32 to fp64
This commit is contained in:
parent
682daf4385
commit
d6609da400
|
|
@ -97,50 +97,50 @@ struct CameraCalibration {
|
||||||
};
|
};
|
||||||
|
|
||||||
void calculate_camera_matrices(const CameraCalibration& cam, cv::Mat& K, cv::Mat& D, cv::Mat& P, cv::Mat& R) {
|
void calculate_camera_matrices(const CameraCalibration& cam, cv::Mat& K, cv::Mat& D, cv::Mat& P, cv::Mat& R) {
|
||||||
K = cv::Mat::eye(3, 3, CV_32FC1);
|
K = cv::Mat::eye(3, 3, CV_64FC1);
|
||||||
D = cv::Mat::zeros(1, 12, CV_32FC1);
|
D = cv::Mat::zeros(1, 12, CV_64FC1);
|
||||||
P = cv::Mat::zeros(3, 1, CV_32FC1);
|
P = cv::Mat::zeros(3, 1, CV_64FC1);
|
||||||
R = cv::Mat::eye(3, 3, CV_32FC1);
|
R = cv::Mat::eye(3, 3, CV_64FC1);
|
||||||
|
|
||||||
K.at<float>(0, 0) = cam.fx;
|
K.at<double>(0, 0) = cam.fx;
|
||||||
K.at<float>(1, 1) = cam.fy;
|
K.at<double>(1, 1) = cam.fy;
|
||||||
K.at<float>(0, 2) = cam.cx;
|
K.at<double>(0, 2) = cam.cx;
|
||||||
K.at<float>(1, 2) = cam.cy;
|
K.at<double>(1, 2) = cam.cy;
|
||||||
|
|
||||||
if (cam.num_kc >= 6) {
|
if (cam.num_kc >= 6) {
|
||||||
D.at<float>(0, 0) = cam.k1;
|
D.at<double>(0, 0) = cam.k1;
|
||||||
D.at<float>(0, 1) = cam.k2;
|
D.at<double>(0, 1) = cam.k2;
|
||||||
D.at<float>(0, 4) = cam.k3;
|
D.at<double>(0, 4) = cam.k3;
|
||||||
D.at<float>(0, 5) = cam.k4;
|
D.at<double>(0, 5) = cam.k4;
|
||||||
D.at<float>(0, 6) = cam.k5;
|
D.at<double>(0, 6) = cam.k5;
|
||||||
D.at<float>(0, 7) = cam.k6;
|
D.at<double>(0, 7) = cam.k6;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cam.num_kc >= 8) {
|
if (cam.num_kc >= 8) {
|
||||||
D.at<float>(0, 2) = cam.p1;
|
D.at<double>(0, 2) = cam.p1;
|
||||||
D.at<float>(0, 3) = cam.p2;
|
D.at<double>(0, 3) = cam.p2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cam.num_kc >= 12) {
|
if (cam.num_kc >= 12) {
|
||||||
D.at<float>(0, 8) = cam.s1;
|
D.at<double>(0, 8) = cam.s1;
|
||||||
D.at<float>(0, 9) = cam.s2;
|
D.at<double>(0, 9) = cam.s2;
|
||||||
D.at<float>(0, 10) = cam.s3;
|
D.at<double>(0, 10) = cam.s3;
|
||||||
D.at<float>(0, 11) = cam.s4;
|
D.at<double>(0, 11) = cam.s4;
|
||||||
}
|
}
|
||||||
|
|
||||||
P.at<float>(0) = cam.position[0];
|
P.at<double>(0) = cam.position[0];
|
||||||
P.at<float>(1) = cam.position[1];
|
P.at<double>(1) = cam.position[1];
|
||||||
P.at<float>(2) = cam.position[2];
|
P.at<double>(2) = cam.position[2];
|
||||||
|
|
||||||
R.at<float>(0, 0) = cam.rotation[0];
|
R.at<double>(0, 0) = cam.rotation[0];
|
||||||
R.at<float>(0, 1) = cam.rotation[1];
|
R.at<double>(0, 1) = cam.rotation[1];
|
||||||
R.at<float>(0, 2) = cam.rotation[2];
|
R.at<double>(0, 2) = cam.rotation[2];
|
||||||
R.at<float>(1, 0) = cam.rotation[3];
|
R.at<double>(1, 0) = cam.rotation[3];
|
||||||
R.at<float>(1, 1) = cam.rotation[4];
|
R.at<double>(1, 1) = cam.rotation[4];
|
||||||
R.at<float>(1, 2) = cam.rotation[5];
|
R.at<double>(1, 2) = cam.rotation[5];
|
||||||
R.at<float>(2, 0) = cam.rotation[6];
|
R.at<double>(2, 0) = cam.rotation[6];
|
||||||
R.at<float>(2, 1) = cam.rotation[7];
|
R.at<double>(2, 1) = cam.rotation[7];
|
||||||
R.at<float>(2, 2) = cam.rotation[8];
|
R.at<double>(2, 2) = cam.rotation[8];
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef cv::Point2f (*apply_variant_func)(const CameraCalibration& cam, float xn, float yn);
|
typedef cv::Point2f (*apply_variant_func)(const CameraCalibration& cam, float xn, float yn);
|
||||||
|
|
@ -279,8 +279,8 @@ cv::Point2f apply_fisheye624(const CameraCalibration& cam, float xn, float yn) {
|
||||||
cv::Mat build_maps_variant(apply_variant_func func, const CameraCalibration& cam, cv::Mat& indices) {
|
cv::Mat build_maps_variant(apply_variant_func func, const CameraCalibration& cam, cv::Mat& indices) {
|
||||||
const cv::Size map_size (cam.resolution.width, cam.resolution.height);
|
const cv::Size map_size (cam.resolution.width, cam.resolution.height);
|
||||||
|
|
||||||
cv::Mat map_x (map_size, CV_32FC1);
|
cv::Mat map_x (map_size, CV_64FC1);
|
||||||
cv::Mat map_y (map_size, CV_32FC1);
|
cv::Mat map_y (map_size, CV_64FC1);
|
||||||
|
|
||||||
cv::Point2f p;
|
cv::Point2f p;
|
||||||
size_t x, y;
|
size_t x, y;
|
||||||
|
|
@ -295,8 +295,8 @@ cv::Mat build_maps_variant(apply_variant_func func, const CameraCalibration& cam
|
||||||
|
|
||||||
p = func(cam, xn, yn);
|
p = func(cam, xn, yn);
|
||||||
|
|
||||||
map_x.at<float>(y, x) = p.x;
|
map_x.at<double>(y, x) = p.x;
|
||||||
map_y.at<float>(y, x) = p.y;
|
map_y.at<double>(y, x) = p.y;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue