32 #define TEST_NAME "base/camera"
44 BOOST_CHECK_EQUAL(camera.
ModelName(),
"");
45 BOOST_CHECK_EQUAL(camera.
Width(), 0);
46 BOOST_CHECK_EQUAL(camera.
Height(), 0);
49 BOOST_CHECK_THROW(camera.
ParamsInfo(), std::domain_error);
52 BOOST_CHECK_EQUAL(camera.
Params().size(), 0);
60 BOOST_CHECK_EQUAL(camera.
CameraId(), 1);
66 BOOST_CHECK_EQUAL(camera.
ModelName(),
"");
68 BOOST_CHECK_EQUAL(camera.
ModelId(),
70 BOOST_CHECK_EQUAL(camera.
ModelName(),
"SIMPLE_PINHOLE");
73 BOOST_CHECK_EQUAL(camera.
ModelId(),
75 BOOST_CHECK_EQUAL(camera.
ModelName(),
"SIMPLE_RADIAL");
81 BOOST_CHECK_EQUAL(camera.
Width(), 0);
82 BOOST_CHECK_EQUAL(camera.
Height(), 0);
84 BOOST_CHECK_EQUAL(camera.
Width(), 1);
85 BOOST_CHECK_EQUAL(camera.
Height(), 0);
87 BOOST_CHECK_EQUAL(camera.
Width(), 1);
88 BOOST_CHECK_EQUAL(camera.
Height(), 1);
145 Eigen::Matrix3d K_ref;
146 K_ref << 1, 0, 0.5, 0, 1, 0.5, 0, 0, 1;
147 BOOST_CHECK_EQUAL(K, K_ref);
152 BOOST_CHECK_THROW(camera.
ParamsInfo(), std::domain_error);
154 BOOST_CHECK_EQUAL(camera.
ParamsInfo(),
"f, cx, cy, k");
159 BOOST_CHECK_EQUAL(camera.
NumParams(), 0);
162 BOOST_CHECK_EQUAL(camera.
NumParams(), 3);
165 BOOST_CHECK_EQUAL(camera.
Params(0), 1.0);
166 BOOST_CHECK_EQUAL(camera.
Params(1), 0.5);
167 BOOST_CHECK_EQUAL(camera.
Params(2), 0.5);
168 BOOST_CHECK_EQUAL(camera.
Params()[0], 1.0);
169 BOOST_CHECK_EQUAL(camera.
Params()[1], 0.5);
170 BOOST_CHECK_EQUAL(camera.
Params()[2], 0.5);
172 BOOST_CHECK_EQUAL(camera.
Params(0), 2.0);
173 BOOST_CHECK_EQUAL(camera.
Params(1), 1.0);
174 BOOST_CHECK_EQUAL(camera.
Params(2), 1.0);
180 BOOST_CHECK_EQUAL(camera.
ParamsToString(),
"1.000000, 0.500000, 0.500000");
187 const std::vector<double> params{1.0, 0.5, 0.5};
188 BOOST_CHECK_EQUAL_COLLECTIONS(camera.
Params().begin(), camera.
Params().end(),
189 params.begin(), params.end());
191 BOOST_CHECK_EQUAL_COLLECTIONS(camera.
Params().begin(), camera.
Params().end(),
192 params.begin(), params.end());
197 BOOST_CHECK_THROW(camera.
VerifyParams(), std::domain_error);
200 camera.
Params().resize(2);
210 camera.
SetParams({1.0, 0.5, 0.5, 0.005});
214 camera.
SetParams({1.0, 0.5, 0.5, 0.0, 0.005});
218 camera.
SetParams({1.0, 1.0, 0.5, 0.5, 0.0, 0.0, 0.0, 0.001});
222 camera.
SetParams({1.0, 1.0, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001});
228 BOOST_CHECK_THROW(camera.
HasBogusParams(0.0, 0.0, 0.0), std::domain_error);
248 BOOST_CHECK_EQUAL(camera.
ModelId(),
250 BOOST_CHECK_EQUAL(camera.
ModelName(),
"SIMPLE_PINHOLE");
251 BOOST_CHECK_EQUAL(camera.
Width(), 1);
252 BOOST_CHECK_EQUAL(camera.
Height(), 1);
257 BOOST_CHECK_EQUAL(camera.
ParamsInfo(),
"f, cx, cy");
258 BOOST_CHECK_EQUAL(camera.
ParamsToString(),
"1.000000, 0.500000, 0.500000");
267 BOOST_CHECK_EQUAL(camera.
Params().size(),
275 BOOST_CHECK_EQUAL(camera.
ModelId(),
277 BOOST_CHECK_EQUAL(camera.
ModelName(),
"SIMPLE_PINHOLE");
278 BOOST_CHECK_EQUAL(camera.
Width(), 1);
279 BOOST_CHECK_EQUAL(camera.
Height(), 1);
284 BOOST_CHECK_EQUAL(camera.
ParamsInfo(),
"f, cx, cy");
285 BOOST_CHECK_EQUAL(camera.
ParamsToString(),
"1.000000, 0.500000, 0.500000");
294 BOOST_CHECK_EQUAL(camera.
Params().size(),
300 BOOST_CHECK_THROW(camera.
ImageToWorld(Eigen::Vector2d::Zero()),
303 BOOST_CHECK_EQUAL(camera.
ImageToWorld(Eigen::Vector2d(0.0, 0.0))(0), -0.5);
304 BOOST_CHECK_EQUAL(camera.
ImageToWorld(Eigen::Vector2d(0.0, 0.0))(1), -0.5);
305 BOOST_CHECK_EQUAL(camera.
ImageToWorld(Eigen::Vector2d(0.5, 0.5))(0), 0.0);
306 BOOST_CHECK_EQUAL(camera.
ImageToWorld(Eigen::Vector2d(0.5, 0.5))(1), 0.0);
324 BOOST_CHECK_THROW(camera.
WorldToImage(Eigen::Vector2d::Zero()),
327 BOOST_CHECK_EQUAL(camera.
WorldToImage(Eigen::Vector2d(0.0, 0.0))(0), 0.5);
328 BOOST_CHECK_EQUAL(camera.
WorldToImage(Eigen::Vector2d(0.0, 0.0))(1), 0.5);
329 BOOST_CHECK_EQUAL(camera.
WorldToImage(Eigen::Vector2d(-0.5, -0.5))(0), 0.0);
330 BOOST_CHECK_EQUAL(camera.
WorldToImage(Eigen::Vector2d(-0.5, -0.5))(1), 0.0);
337 BOOST_CHECK_EQUAL(camera.
Width(), 2);
338 BOOST_CHECK_EQUAL(camera.
Height(), 2);
345 BOOST_CHECK_EQUAL(camera.
Width(), 2);
346 BOOST_CHECK_EQUAL(camera.
Height(), 2);
354 BOOST_CHECK_EQUAL(camera.
Width(), 1);
355 BOOST_CHECK_EQUAL(camera.
Height(), 1);
363 BOOST_CHECK_EQUAL(camera.
Width(), 1);
364 BOOST_CHECK_EQUAL(camera.
Height(), 1);
372 BOOST_CHECK_EQUAL(camera.
Width(), 4);
373 BOOST_CHECK_EQUAL(camera.
Height(), 4);
BOOST_AUTO_TEST_CASE(TestEmpty)
void SetWidth(const size_t width)
bool VerifyParams() const
void InitializeWithName(const std::string &model_name, const double focal_length, const size_t width, const size_t height)
double FocalLengthY() const
void InitializeWithId(const int model_id, const double focal_length, const size_t width, const size_t height)
Eigen::Vector2d ImageToWorld(const Eigen::Vector2d &image_point) const
void SetPriorFocalLength(const bool prior)
void SetModelIdFromName(const std::string &model_name)
const std::vector< double > & Params() const
double ImageToWorldThreshold(const double threshold) const
bool SetParamsFromString(const std::string &string)
camera_t CameraId() const
std::string ModelName() const
void SetPrincipalPointX(const double ppx)
std::string ParamsToString() const
void SetFocalLengthX(const double focal_length_x)
const std::vector< size_t > & PrincipalPointIdxs() const
void Rescale(const double scale)
void SetParams(const std::vector< double > ¶ms)
void SetFocalLengthY(const double focal_length_y)
void SetFocalLength(const double focal_length)
bool HasPriorFocalLength() const
bool HasBogusParams(const double min_focal_length_ratio, const double max_focal_length_ratio, const double max_extra_param) const
double FocalLength() const
void SetPrincipalPointY(const double ppy)
void SetCameraId(const camera_t camera_id)
std::string ParamsInfo() const
const std::vector< size_t > & ExtraParamsIdxs() const
Eigen::Matrix3d CalibrationMatrix() const
double FocalLengthX() const
const std::vector< size_t > & FocalLengthIdxs() const
double PrincipalPointX() const
Eigen::Vector2d WorldToImage(const Eigen::Vector2d &world_point) const
double PrincipalPointY() const
const double * ParamsData() const
void SetHeight(const size_t height)
void SetModelId(const int model_id)
bool IsUndistorted() const
static const int kInvalidCameraModelId
const camera_t kInvalidCameraId
static const int model_id
static const int model_id
static const int model_id
static const int model_id
static const size_t num_params
static const int model_id
static const size_t num_params
static const int model_id