add spc version in img.params

This commit is contained in:
Kalman 2018-09-20 16:52:08 +08:00
parent 13e9a89b59
commit 30332a80de
4 changed files with 15 additions and 13 deletions

View File

@ -102,9 +102,9 @@ void CheckSpecVersion(const Version *spec_version) {
LOG(FATAL) << "Spec version must be specified";
}
std::vector<std::string> spec_versions{"1.0"};
std::vector<std::string> spec_versions{"1.0", "1.1"};
for (auto &&spec_ver : spec_versions) {
if (*spec_version >= Version(spec_ver)) {
if (*spec_version == Version(spec_ver)) {
return; // supported
}
}

View File

@ -1,6 +1,6 @@
%YAML:1.0
---
version: 1.1
version: "1.1"
in_left_map:
-
width: 640

View File

@ -191,7 +191,8 @@ bool DeviceWriter::SaveDeviceInfo(
}
bool DeviceWriter::SaveImgParams(
const img_params_t &params, const std::string &filepath) {
const dev_info_t &info, const img_params_t &params,
const std::string &filepath) {
using FileStorage = cv::FileStorage;
FileStorage fs(filepath, FileStorage::WRITE);
if (!fs.isOpened()) {
@ -200,8 +201,9 @@ bool DeviceWriter::SaveImgParams(
}
if (params.in_left_map.size() == params.in_right_map.size()) {
fs << "in_left_map" << params.in_left_map << "in_right_map"
<< params.in_right_map << "ex_left_to_right" << params.ex_left_to_right;
fs << "version" << info.spec_version.to_string() << "in_left_map"
<< params.in_left_map << "in_right_map" << params.in_right_map
<< "ex_left_to_right" << params.ex_left_to_right;
fs.release();
return true;
} else {
@ -229,7 +231,8 @@ void DeviceWriter::SaveAllInfos(const std::string &dir) {
LOG(FATAL) << "Create directory failed: " << dir;
}
SaveDeviceInfo(*device_->GetInfo(), dir + OS_SEP "device.info");
SaveImgParams(device_->GetImgParams(), dir + OS_SEP "img.params");
SaveImgParams(
*device_->GetInfo(), device_->GetImgParams(), dir + OS_SEP "img.params");
auto &&m_in = device_->GetMotionIntrinsics();
SaveImuParams(
{
@ -344,7 +347,6 @@ DeviceWriter::img_params_t DeviceWriter::LoadImgParams(
img_params_t params;
if (fs["version"].isNone()) {
if (fs["in_left"].isNone()) {
LOG(INFO) << "static_cast<double>(fs[version]) == 0.1";
std::uint16_t w = 752;
std::uint16_t h = 480;
std::uint8_t m = 0;
@ -374,14 +376,12 @@ DeviceWriter::img_params_t DeviceWriter::LoadImgParams(
fs["ex_left_to_right"] >> params.ex_left_to_right;
}
} else {
if (static_cast<double>(fs["version"]) == 1.0) {
LOG(INFO) << "static_cast<double>(fs[version]) == 1.0";
if (static_cast<std::string>(fs["version"]) == "1.0") {
fs["in_left_map"][0] >> params.in_left_map[Resolution::RES_752x480];
fs["in_right_map"][0] >> params.in_right_map[Resolution::RES_752x480];
fs["ex_left_to_right"] >> params.ex_left_to_right;
}
if (static_cast<double>(fs["version"]) == 1.1) {
LOG(INFO) << "static_cast<double>(fs[version]) == 1.1";
if (static_cast<std::string>(fs["version"]) == "1.1") {
fs["in_left_map"][0] >> params.in_left_map[Resolution::RES_1280x400];
fs["in_left_map"][1] >> params.in_left_map[Resolution::RES_2560x800];
fs["in_right_map"][0] >> params.in_right_map[Resolution::RES_1280x400];

View File

@ -48,7 +48,9 @@ class DeviceWriter {
bool WriteImuParams(const std::string &filepath);
bool SaveDeviceInfo(const dev_info_t &info, const std::string &filepath);
bool SaveImgParams(const img_params_t &params, const std::string &filepath);
bool SaveImgParams(
const dev_info_t &info, const img_params_t &params,
const std::string &filepath);
bool SaveImuParams(const imu_params_t &params, const std::string &filepath);
/** Save all infos of this device */