32 #ifndef OPENSHOT_STABILIZATION_H 33 #define OPENSHOT_STABILIZATION_H 35 #define int64 opencv_broken_int 36 #define uint64 opencv_broken_uint 37 #include <opencv2/opencv.hpp> 38 #include <opencv2/core.hpp> 42 #include "protobuf_messages/stabilizedata.pb.h" 92 double avr_dx, avr_dy, avr_da, max_dx, max_dy, max_da;
96 std::vector <TransformParam> prev_to_cur_transform;
97 std::string protobuf_data_path;
106 bool TrackFrameFeatures(cv::Mat frame,
size_t frameNum);
108 std::vector<CamTrajectory> ComputeFramesTrajectory();
109 std::map<size_t,CamTrajectory> SmoothTrajectory(std::vector <CamTrajectory> &trajectory);
112 std::map<size_t,TransformParam> GenNewCamPosition(std::map <size_t,CamTrajectory> &smoothed_trajectory);
123 void stabilizeClip(
openshot::Clip& video,
size_t _start=0,
size_t _end=0,
bool process_interval=
false);
127 bool SaveStabilizedData();
129 void AddFrameDataToProto(pb_stabilize::Frame* pbFrameData,
CamTrajectory& trajData,
TransformParam& transData,
size_t frame_number);
136 void SetJson(
const std::string value);
137 void SetJsonValue(
const Json::Value root);
140 bool _LoadStabilizedData();
This class stabilizes a video frame using optical flow.
This is a message class for thread safe comunication between ClipProcessingJobs and OpenCV classes...
This class represents a clip (used to arrange readers on the timeline)
Header file for Clip class.
Header file for JSON class.
std::map< size_t, CamTrajectory > trajectoryData
std::map< size_t, TransformParam > transformationData
CamTrajectory(double _x, double _y, double _a)