bool RGBDKeyframe::save( const RGBDKeyframe& keyframe, const std::string& path) { std::string pose_filename = path + "/pose.yaml"; std::string prop_filename = path + "/properties.yaml"; // save frame bool save_frame_result = RGBDFrame::save(keyframe, path); if (!save_frame_result) return false; // save pose as OpenCV rmat and tvec cv::Mat rmat, tvec; tfToOpenCVRt(keyframe.pose, rmat, tvec); cv::FileStorage fs_m(pose_filename, cv::FileStorage::WRITE); fs_m << "rmat" << rmat; fs_m << "tvec" << tvec; // save other class members cv::FileStorage fs_p(prop_filename, cv::FileStorage::WRITE); fs_p << "manually_added" << keyframe.manually_added; fs_p << "path_length_linear" << keyframe.path_length_linear; fs_p << "path_length_angular" << keyframe.path_length_angular; return true; }
bool RGBDKeyframe::load(RGBDKeyframe& keyframe, const std::string& path) { // load frame bool load_frame_result = RGBDFrame::load(keyframe, path); if (!load_frame_result) return false; // set up filenames std::string pose_filename = path + "/pose.yaml"; std::string prop_filename = path + "/properties.yaml"; // check if files exist if (!boost::filesystem::exists(pose_filename) || !boost::filesystem::exists(prop_filename) ) { ROS_ERROR("files for loading keyframe not found"); return false; } // load pose cv::FileStorage fs_m(pose_filename, cv::FileStorage::READ); cv::Mat rmat, tvec; fs_m["rmat"] >> rmat; fs_m["tvec"] >> tvec; openCVRtToTf(rmat, tvec, keyframe.pose); // load other class members cv::FileStorage fs_p(prop_filename, cv::FileStorage::READ); fs_p["manually_added"] >> keyframe.manually_added; fs_p["path_length_linear"] >> keyframe.path_length_linear; fs_p["path_length_angular"] >> keyframe.path_length_angular; return true; }
void FragSpectrumScanDatabase::savePsm( unsigned int scanNr, std::auto_ptr< percolatorInNs::peptideSpectrumMatch > psm_p ) { std::auto_ptr< ::percolatorInNs::fragSpectrumScan> fss = getFSS(scanNr); // if FragSpectrumScan does not yet exist, create it if (!fss.get()) { std::auto_ptr< ::percolatorInNs::fragSpectrumScan> fs_p( new ::percolatorInNs::fragSpectrumScan(scanNr)); fss = fs_p; } // add the psm to the FragSpectrumScan fss->peptideSpectrumMatch().push_back(psm_p); putFSS(*fss); }