MCPcopy Create free account
hub / github.com/OpenShot/libopenshot / _LoadStabilizedData

Method _LoadStabilizedData

src/CVStabilization.cpp:374–417  ·  view source on GitHub ↗

Load protobuf data file

Source from the content-addressed store, hash-verified

372
373// Load protobuf data file
374bool CVStabilization::_LoadStabilizedData(){
375 using std::ios;
376 // Create stabilization message
377 pb_stabilize::Stabilization stabilizationMessage;
378 // Read the existing tracker message.
379 std::fstream input(protobuf_data_path, ios::in | ios::binary);
380 if (!stabilizationMessage.ParseFromIstream(&input)) {
381 std::cerr << "Failed to parse protobuf message." << std::endl;
382 return false;
383 }
384
385 // Make sure the data maps are empty
386 transformationData.clear();
387 trajectoryData.clear();
388
389 // Iterate over all frames of the saved message and assign to the data maps
390 for (size_t i = 0; i < stabilizationMessage.frame_size(); i++) {
391 const pb_stabilize::Frame& pbFrameData = stabilizationMessage.frame(i);
392
393 // Load frame number
394 size_t id = pbFrameData.id();
395
396 // Load camera trajectory data
397 float x = pbFrameData.x();
398 float y = pbFrameData.y();
399 float a = pbFrameData.a();
400
401 // Assign data to trajectory map
402 trajectoryData[id] = CamTrajectory(x,y,a);
403
404 // Load transformation data
405 float dx = pbFrameData.dx();
406 float dy = pbFrameData.dy();
407 float da = pbFrameData.da();
408
409 // Assing data to transformation map
410 transformationData[id] = TransformParam(dx,dy,da);
411 }
412
413 // Delete all global objects allocated by libprotobuf.
414 google::protobuf::ShutdownProtobufLibrary();
415
416 return true;
417}

Callers 1

CVStabilizer.cppFile · 0.80

Calls 3

CamTrajectoryClass · 0.85
TransformParamClass · 0.85
clearMethod · 0.45

Tested by

no test coverage detected