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);
136 void SetJson(
const std::string value);
Header file for Clip class.
Header file for JSON class.
This is a message class for thread safe comunication between ClipProcessingJobs and OpenCV classes.
This class stabilizes a video frame using optical flow.
TransformParam GetTransformParamData(size_t frameId)
bool _LoadStabilizedData()
void SetJsonValue(const Json::Value root)
Load Json::Value into this object.
CVStabilization(std::string processInfoJson, ProcessingController &processingController)
Set default smoothing window value to compute stabilization.
void AddFrameDataToProto(pb_stabilize::Frame *pbFrameData, CamTrajectory &trajData, TransformParam &transData, size_t frame_number)
Add frame stabilization data into protobuf message.
std::map< size_t, TransformParam > transformationData
void stabilizeClip(openshot::Clip &video, size_t _start=0, size_t _end=0, bool process_interval=false)
Process clip and store necessary stabilization data.
std::map< size_t, CamTrajectory > trajectoryData
CamTrajectory GetCamTrajectoryTrackedData(size_t frameId)
bool SaveStabilizedData()
void SetJson(const std::string value)
Load JSON string into this object.
This class represents a clip (used to arrange readers on the timeline)
CamTrajectory(double _x, double _y, double _a)