Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/libmv/libmv/simple_pipeline/camera_intrinsics.cc')
-rw-r--r--intern/libmv/libmv/simple_pipeline/camera_intrinsics.cc279
1 files changed, 135 insertions, 144 deletions
diff --git a/intern/libmv/libmv/simple_pipeline/camera_intrinsics.cc b/intern/libmv/libmv/simple_pipeline/camera_intrinsics.cc
index ccb6e3d34c8..b86e316b139 100644
--- a/intern/libmv/libmv/simple_pipeline/camera_intrinsics.cc
+++ b/intern/libmv/libmv/simple_pipeline/camera_intrinsics.cc
@@ -29,13 +29,10 @@ namespace libmv {
namespace internal {
LookupWarpGrid::LookupWarpGrid()
- : offset_(NULL),
- width_(0),
- height_(0),
- overscan_(0.0),
- threads_(1) {}
+ : offset_(NULL), width_(0), height_(0), overscan_(0.0), threads_(1) {
+}
-LookupWarpGrid::LookupWarpGrid(const LookupWarpGrid &from)
+LookupWarpGrid::LookupWarpGrid(const LookupWarpGrid& from)
: offset_(NULL),
width_(from.width_),
height_(from.height_),
@@ -48,11 +45,11 @@ LookupWarpGrid::LookupWarpGrid(const LookupWarpGrid &from)
}
LookupWarpGrid::~LookupWarpGrid() {
- delete [] offset_;
+ delete[] offset_;
}
void LookupWarpGrid::Reset() {
- delete [] offset_;
+ delete[] offset_;
offset_ = NULL;
}
@@ -64,16 +61,16 @@ void LookupWarpGrid::SetThreads(int threads) {
} // namespace internal
CameraIntrinsics::CameraIntrinsics()
- : image_width_(0),
- image_height_(0),
- K_(Mat3::Identity()) {}
+ : image_width_(0), image_height_(0), K_(Mat3::Identity()) {
+}
-CameraIntrinsics::CameraIntrinsics(const CameraIntrinsics &from)
+CameraIntrinsics::CameraIntrinsics(const CameraIntrinsics& from)
: image_width_(from.image_width_),
image_height_(from.image_height_),
K_(from.K_),
distort_(from.distort_),
- undistort_(from.undistort_) {}
+ undistort_(from.undistort_) {
+}
// Set the image size in pixels.
void CameraIntrinsics::SetImageSize(int width, int height) {
@@ -89,16 +86,14 @@ void CameraIntrinsics::SetK(const Mat3 new_k) {
}
// Set both x and y focal length in pixels.
-void CameraIntrinsics::SetFocalLength(double focal_x,
- double focal_y) {
+void CameraIntrinsics::SetFocalLength(double focal_x, double focal_y) {
K_(0, 0) = focal_x;
K_(1, 1) = focal_y;
ResetLookupGrids();
}
// Set principal point in pixels.
-void CameraIntrinsics::SetPrincipalPoint(double cx,
- double cy) {
+void CameraIntrinsics::SetPrincipalPoint(double cx, double cy) {
K_(0, 2) = cx;
K_(1, 2) = cy;
ResetLookupGrids();
@@ -112,16 +107,16 @@ void CameraIntrinsics::SetThreads(int threads) {
void CameraIntrinsics::ImageSpaceToNormalized(double image_x,
double image_y,
- double *normalized_x,
- double *normalized_y) const {
+ double* normalized_x,
+ double* normalized_y) const {
*normalized_x = (image_x - principal_point_x()) / focal_length_x();
*normalized_y = (image_y - principal_point_y()) / focal_length_y();
}
void CameraIntrinsics::NormalizedToImageSpace(double normalized_x,
double normalized_y,
- double *image_x,
- double *image_y) const {
+ double* image_x,
+ double* image_y) const {
*image_x = normalized_x * focal_length_x() + principal_point_x();
*image_y = normalized_y * focal_length_y() + principal_point_y();
}
@@ -148,14 +143,13 @@ void CameraIntrinsics::Unpack(const PackedIntrinsics& packed_intrinsics) {
// Polynomial model.
-PolynomialCameraIntrinsics::PolynomialCameraIntrinsics()
- : CameraIntrinsics() {
+PolynomialCameraIntrinsics::PolynomialCameraIntrinsics() : CameraIntrinsics() {
SetRadialDistortion(0.0, 0.0, 0.0);
SetTangentialDistortion(0.0, 0.0);
}
PolynomialCameraIntrinsics::PolynomialCameraIntrinsics(
- const PolynomialCameraIntrinsics &from)
+ const PolynomialCameraIntrinsics& from)
: CameraIntrinsics(from) {
SetRadialDistortion(from.k1(), from.k2(), from.k3());
SetTangentialDistortion(from.p1(), from.p2());
@@ -170,8 +164,7 @@ void PolynomialCameraIntrinsics::SetRadialDistortion(double k1,
ResetLookupGrids();
}
-void PolynomialCameraIntrinsics::SetTangentialDistortion(double p1,
- double p2) {
+void PolynomialCameraIntrinsics::SetTangentialDistortion(double p1, double p2) {
parameters_[OFFSET_P1] = p1;
parameters_[OFFSET_P2] = p2;
ResetLookupGrids();
@@ -179,31 +172,36 @@ void PolynomialCameraIntrinsics::SetTangentialDistortion(double p1,
void PolynomialCameraIntrinsics::ApplyIntrinsics(double normalized_x,
double normalized_y,
- double *image_x,
- double *image_y) const {
+ double* image_x,
+ double* image_y) const {
ApplyPolynomialDistortionModel(focal_length_x(),
focal_length_y(),
principal_point_x(),
principal_point_y(),
- k1(), k2(), k3(),
- p1(), p2(),
+ k1(),
+ k2(),
+ k3(),
+ p1(),
+ p2(),
normalized_x,
normalized_y,
image_x,
image_y);
}
-void PolynomialCameraIntrinsics::InvertIntrinsics(
- double image_x,
- double image_y,
- double *normalized_x,
- double *normalized_y) const {
+void PolynomialCameraIntrinsics::InvertIntrinsics(double image_x,
+ double image_y,
+ double* normalized_x,
+ double* normalized_y) const {
InvertPolynomialDistortionModel(focal_length_x(),
focal_length_y(),
principal_point_x(),
principal_point_y(),
- k1(), k2(), k3(),
- p1(), p2(),
+ k1(),
+ k2(),
+ k3(),
+ p1(),
+ p2(),
image_x,
image_y,
normalized_x,
@@ -230,25 +228,22 @@ void PolynomialCameraIntrinsics::Unpack(
packed_intrinsics.GetK2(),
packed_intrinsics.GetK3());
- SetTangentialDistortion(packed_intrinsics.GetP1(),
- packed_intrinsics.GetP2());
+ SetTangentialDistortion(packed_intrinsics.GetP1(), packed_intrinsics.GetP2());
}
// Division model.
-DivisionCameraIntrinsics::DivisionCameraIntrinsics()
- : CameraIntrinsics() {
+DivisionCameraIntrinsics::DivisionCameraIntrinsics() : CameraIntrinsics() {
SetDistortion(0.0, 0.0);
}
DivisionCameraIntrinsics::DivisionCameraIntrinsics(
- const DivisionCameraIntrinsics &from)
+ const DivisionCameraIntrinsics& from)
: CameraIntrinsics(from) {
SetDistortion(from.k1(), from.k1());
}
-void DivisionCameraIntrinsics::SetDistortion(double k1,
- double k2) {
+void DivisionCameraIntrinsics::SetDistortion(double k1, double k2) {
parameters_[OFFSET_K1] = k1;
parameters_[OFFSET_K2] = k2;
ResetLookupGrids();
@@ -256,13 +251,14 @@ void DivisionCameraIntrinsics::SetDistortion(double k1,
void DivisionCameraIntrinsics::ApplyIntrinsics(double normalized_x,
double normalized_y,
- double *image_x,
- double *image_y) const {
+ double* image_x,
+ double* image_y) const {
ApplyDivisionDistortionModel(focal_length_x(),
focal_length_y(),
principal_point_x(),
principal_point_y(),
- k1(), k2(),
+ k1(),
+ k2(),
normalized_x,
normalized_y,
image_x,
@@ -271,21 +267,21 @@ void DivisionCameraIntrinsics::ApplyIntrinsics(double normalized_x,
void DivisionCameraIntrinsics::InvertIntrinsics(double image_x,
double image_y,
- double *normalized_x,
- double *normalized_y) const {
+ double* normalized_x,
+ double* normalized_y) const {
InvertDivisionDistortionModel(focal_length_x(),
focal_length_y(),
principal_point_x(),
principal_point_y(),
- k1(), k2(),
+ k1(),
+ k2(),
image_x,
image_y,
normalized_x,
normalized_y);
}
-void DivisionCameraIntrinsics::Pack(
- PackedIntrinsics* packed_intrinsics) const {
+void DivisionCameraIntrinsics::Pack(PackedIntrinsics* packed_intrinsics) const {
CameraIntrinsics::Pack(packed_intrinsics);
packed_intrinsics->SetK1(k1());
@@ -301,13 +297,11 @@ void DivisionCameraIntrinsics::Unpack(
// Nuke model.
-NukeCameraIntrinsics::NukeCameraIntrinsics()
- : CameraIntrinsics() {
+NukeCameraIntrinsics::NukeCameraIntrinsics() : CameraIntrinsics() {
SetDistortion(0.0, 0.0);
}
-NukeCameraIntrinsics::NukeCameraIntrinsics(
- const NukeCameraIntrinsics &from)
+NukeCameraIntrinsics::NukeCameraIntrinsics(const NukeCameraIntrinsics& from)
: CameraIntrinsics(from) {
SetDistortion(from.k1(), from.k2());
}
@@ -320,14 +314,16 @@ void NukeCameraIntrinsics::SetDistortion(double k1, double k2) {
void NukeCameraIntrinsics::ApplyIntrinsics(double normalized_x,
double normalized_y,
- double *image_x,
- double *image_y) const {
+ double* image_x,
+ double* image_y) const {
ApplyNukeDistortionModel(focal_length_x(),
focal_length_y(),
principal_point_x(),
principal_point_y(),
- image_width(), image_height(),
- k1(), k2(),
+ image_width(),
+ image_height(),
+ k1(),
+ k2(),
normalized_x,
normalized_y,
image_x,
@@ -335,31 +331,31 @@ void NukeCameraIntrinsics::ApplyIntrinsics(double normalized_x,
}
void NukeCameraIntrinsics::InvertIntrinsics(double image_x,
- double image_y,
- double *normalized_x,
- double *normalized_y) const {
+ double image_y,
+ double* normalized_x,
+ double* normalized_y) const {
InvertNukeDistortionModel(focal_length_x(),
focal_length_y(),
principal_point_x(),
principal_point_y(),
- image_width(), image_height(),
- k1(), k2(),
+ image_width(),
+ image_height(),
+ k1(),
+ k2(),
image_x,
image_y,
normalized_x,
normalized_y);
}
-void NukeCameraIntrinsics::Pack(
- PackedIntrinsics* packed_intrinsics) const {
+void NukeCameraIntrinsics::Pack(PackedIntrinsics* packed_intrinsics) const {
CameraIntrinsics::Pack(packed_intrinsics);
packed_intrinsics->SetK1(k1());
packed_intrinsics->SetK2(k2());
}
-void NukeCameraIntrinsics::Unpack(
- const PackedIntrinsics& packed_intrinsics) {
+void NukeCameraIntrinsics::Unpack(const PackedIntrinsics& packed_intrinsics) {
CameraIntrinsics::Unpack(packed_intrinsics);
SetDistortion(packed_intrinsics.GetK1(), packed_intrinsics.GetK2());
@@ -367,14 +363,12 @@ void NukeCameraIntrinsics::Unpack(
// Brown model.
-BrownCameraIntrinsics::BrownCameraIntrinsics()
- : CameraIntrinsics() {
+BrownCameraIntrinsics::BrownCameraIntrinsics() : CameraIntrinsics() {
SetRadialDistortion(0.0, 0.0, 0.0, 0.0);
SetTangentialDistortion(0.0, 0.0);
}
-BrownCameraIntrinsics::BrownCameraIntrinsics(
- const BrownCameraIntrinsics &from)
+BrownCameraIntrinsics::BrownCameraIntrinsics(const BrownCameraIntrinsics& from)
: CameraIntrinsics(from) {
SetRadialDistortion(from.k1(), from.k2(), from.k3(), from.k4());
SetTangentialDistortion(from.p1(), from.p2());
@@ -391,8 +385,7 @@ void BrownCameraIntrinsics::SetRadialDistortion(double k1,
ResetLookupGrids();
}
-void BrownCameraIntrinsics::SetTangentialDistortion(double p1,
- double p2) {
+void BrownCameraIntrinsics::SetTangentialDistortion(double p1, double p2) {
parameters_[OFFSET_P1] = p1;
parameters_[OFFSET_P2] = p2;
ResetLookupGrids();
@@ -400,39 +393,45 @@ void BrownCameraIntrinsics::SetTangentialDistortion(double p1,
void BrownCameraIntrinsics::ApplyIntrinsics(double normalized_x,
double normalized_y,
- double *image_x,
- double *image_y) const {
+ double* image_x,
+ double* image_y) const {
ApplyBrownDistortionModel(focal_length_x(),
focal_length_y(),
principal_point_x(),
principal_point_y(),
- k1(), k2(), k3(), k4(),
- p1(), p2(),
+ k1(),
+ k2(),
+ k3(),
+ k4(),
+ p1(),
+ p2(),
normalized_x,
normalized_y,
image_x,
image_y);
}
-void BrownCameraIntrinsics::InvertIntrinsics(
- double image_x,
- double image_y,
- double *normalized_x,
- double *normalized_y) const {
+void BrownCameraIntrinsics::InvertIntrinsics(double image_x,
+ double image_y,
+ double* normalized_x,
+ double* normalized_y) const {
InvertBrownDistortionModel(focal_length_x(),
focal_length_y(),
principal_point_x(),
principal_point_y(),
- k1(), k2(), k3(), k4(),
- p1(), p2(),
+ k1(),
+ k2(),
+ k3(),
+ k4(),
+ p1(),
+ p2(),
image_x,
image_y,
normalized_x,
normalized_y);
}
-void BrownCameraIntrinsics::Pack(
- PackedIntrinsics* packed_intrinsics) const {
+void BrownCameraIntrinsics::Pack(PackedIntrinsics* packed_intrinsics) const {
CameraIntrinsics::Pack(packed_intrinsics);
packed_intrinsics->SetK1(k1());
@@ -444,8 +443,7 @@ void BrownCameraIntrinsics::Pack(
packed_intrinsics->SetP2(p2());
}
-void BrownCameraIntrinsics::Unpack(
- const PackedIntrinsics& packed_intrinsics) {
+void BrownCameraIntrinsics::Unpack(const PackedIntrinsics& packed_intrinsics) {
CameraIntrinsics::Unpack(packed_intrinsics);
SetRadialDistortion(packed_intrinsics.GetK1(),
@@ -453,72 +451,65 @@ void BrownCameraIntrinsics::Unpack(
packed_intrinsics.GetK3(),
packed_intrinsics.GetK4());
- SetTangentialDistortion(packed_intrinsics.GetP1(),
- packed_intrinsics.GetP2());
+ SetTangentialDistortion(packed_intrinsics.GetP1(), packed_intrinsics.GetP2());
}
-std::ostream& operator <<(std::ostream &os,
- const CameraIntrinsics &intrinsics) {
+std::ostream& operator<<(std::ostream& os, const CameraIntrinsics& intrinsics) {
if (intrinsics.focal_length_x() == intrinsics.focal_length_x()) {
os << "f=" << intrinsics.focal_length();
} else {
- os << "fx=" << intrinsics.focal_length_x()
+ os << "fx=" << intrinsics.focal_length_x()
<< " fy=" << intrinsics.focal_length_y();
}
os << " cx=" << intrinsics.principal_point_x()
<< " cy=" << intrinsics.principal_point_y()
- << " w=" << intrinsics.image_width()
- << " h=" << intrinsics.image_height();
+ << " w=" << intrinsics.image_width() << " h=" << intrinsics.image_height();
-#define PRINT_NONZERO_COEFFICIENT(intrinsics, coeff) \
- { \
- if (intrinsics->coeff() != 0.0) { \
- os << " " #coeff "=" << intrinsics->coeff(); \
- } \
- } (void) 0
+#define PRINT_NONZERO_COEFFICIENT(intrinsics, coeff) \
+ { \
+ if (intrinsics->coeff() != 0.0) { \
+ os << " " #coeff "=" << intrinsics->coeff(); \
+ } \
+ } \
+ (void)0
switch (intrinsics.GetDistortionModelType()) {
- case DISTORTION_MODEL_POLYNOMIAL:
- {
- const PolynomialCameraIntrinsics *polynomial_intrinsics =
- static_cast<const PolynomialCameraIntrinsics *>(&intrinsics);
- PRINT_NONZERO_COEFFICIENT(polynomial_intrinsics, k1);
- PRINT_NONZERO_COEFFICIENT(polynomial_intrinsics, k2);
- PRINT_NONZERO_COEFFICIENT(polynomial_intrinsics, k3);
- PRINT_NONZERO_COEFFICIENT(polynomial_intrinsics, p1);
- PRINT_NONZERO_COEFFICIENT(polynomial_intrinsics, p2);
- break;
- }
- case DISTORTION_MODEL_DIVISION:
- {
- const DivisionCameraIntrinsics *division_intrinsics =
- static_cast<const DivisionCameraIntrinsics *>(&intrinsics);
- PRINT_NONZERO_COEFFICIENT(division_intrinsics, k1);
- PRINT_NONZERO_COEFFICIENT(division_intrinsics, k2);
- break;
- }
- case DISTORTION_MODEL_NUKE:
- {
- const NukeCameraIntrinsics *nuke_intrinsics =
- static_cast<const NukeCameraIntrinsics *>(&intrinsics);
- PRINT_NONZERO_COEFFICIENT(nuke_intrinsics, k1);
- PRINT_NONZERO_COEFFICIENT(nuke_intrinsics, k2);
- break;
- }
- case DISTORTION_MODEL_BROWN:
- {
- const BrownCameraIntrinsics *brown_intrinsics =
- static_cast<const BrownCameraIntrinsics *>(&intrinsics);
- PRINT_NONZERO_COEFFICIENT(brown_intrinsics, k1);
- PRINT_NONZERO_COEFFICIENT(brown_intrinsics, k2);
- PRINT_NONZERO_COEFFICIENT(brown_intrinsics, k3);
- PRINT_NONZERO_COEFFICIENT(brown_intrinsics, k4);
- PRINT_NONZERO_COEFFICIENT(brown_intrinsics, p1);
- PRINT_NONZERO_COEFFICIENT(brown_intrinsics, p2);
- break;
- }
- default:
- LOG(FATAL) << "Unknown distortion model.";
+ case DISTORTION_MODEL_POLYNOMIAL: {
+ const PolynomialCameraIntrinsics* polynomial_intrinsics =
+ static_cast<const PolynomialCameraIntrinsics*>(&intrinsics);
+ PRINT_NONZERO_COEFFICIENT(polynomial_intrinsics, k1);
+ PRINT_NONZERO_COEFFICIENT(polynomial_intrinsics, k2);
+ PRINT_NONZERO_COEFFICIENT(polynomial_intrinsics, k3);
+ PRINT_NONZERO_COEFFICIENT(polynomial_intrinsics, p1);
+ PRINT_NONZERO_COEFFICIENT(polynomial_intrinsics, p2);
+ break;
+ }
+ case DISTORTION_MODEL_DIVISION: {
+ const DivisionCameraIntrinsics* division_intrinsics =
+ static_cast<const DivisionCameraIntrinsics*>(&intrinsics);
+ PRINT_NONZERO_COEFFICIENT(division_intrinsics, k1);
+ PRINT_NONZERO_COEFFICIENT(division_intrinsics, k2);
+ break;
+ }
+ case DISTORTION_MODEL_NUKE: {
+ const NukeCameraIntrinsics* nuke_intrinsics =
+ static_cast<const NukeCameraIntrinsics*>(&intrinsics);
+ PRINT_NONZERO_COEFFICIENT(nuke_intrinsics, k1);
+ PRINT_NONZERO_COEFFICIENT(nuke_intrinsics, k2);
+ break;
+ }
+ case DISTORTION_MODEL_BROWN: {
+ const BrownCameraIntrinsics* brown_intrinsics =
+ static_cast<const BrownCameraIntrinsics*>(&intrinsics);
+ PRINT_NONZERO_COEFFICIENT(brown_intrinsics, k1);
+ PRINT_NONZERO_COEFFICIENT(brown_intrinsics, k2);
+ PRINT_NONZERO_COEFFICIENT(brown_intrinsics, k3);
+ PRINT_NONZERO_COEFFICIENT(brown_intrinsics, k4);
+ PRINT_NONZERO_COEFFICIENT(brown_intrinsics, p1);
+ PRINT_NONZERO_COEFFICIENT(brown_intrinsics, p2);
+ break;
+ }
+ default: LOG(FATAL) << "Unknown distortion model.";
}
#undef PRINT_NONZERO_COEFFICIENT