Save stabilization data to protobuf file
| 266 | |
| 267 | // Save stabilization data to protobuf file |
| 268 | bool CVStabilization::SaveStabilizedData(){ |
| 269 | using std::ios; |
| 270 | |
| 271 | // Create stabilization message |
| 272 | pb_stabilize::Stabilization stabilizationMessage; |
| 273 | |
| 274 | std::map<size_t,CamTrajectory>::iterator trajData = trajectoryData.begin(); |
| 275 | std::map<size_t,TransformParam>::iterator transData = transformationData.begin(); |
| 276 | |
| 277 | // Iterate over all frames data and save in protobuf message |
| 278 | for(; trajData != trajectoryData.end(); ++trajData, ++transData){ |
| 279 | AddFrameDataToProto(stabilizationMessage.add_frame(), trajData->second, transData->second, trajData->first); |
| 280 | } |
| 281 | // Add timestamp |
| 282 | *stabilizationMessage.mutable_last_updated() = TimeUtil::SecondsToTimestamp(time(NULL)); |
| 283 | |
| 284 | // Write the new message to disk. |
| 285 | std::fstream output(protobuf_data_path, ios::out | ios::trunc | ios::binary); |
| 286 | if (!stabilizationMessage.SerializeToOstream(&output)) { |
| 287 | std::cerr << "Failed to write protobuf message." << std::endl; |
| 288 | return false; |
| 289 | } |
| 290 | |
| 291 | // Delete all global objects allocated by libprotobuf. |
| 292 | google::protobuf::ShutdownProtobufLibrary(); |
| 293 | |
| 294 | return true; |
| 295 | } |
| 296 | |
| 297 | // Add frame stabilization data into protobuf message |
| 298 | void CVStabilization::AddFrameDataToProto(pb_stabilize::Frame* pbFrameData, CamTrajectory& trajData, TransformParam& transData, size_t frame_number){ |
no outgoing calls
no test coverage detected