Files
libopenshot/src/ClipProcessingJobs.cpp

50 lines
1.4 KiB
C++
Raw Normal View History

2020-07-08 11:49:46 -03:00
#include "../include/ClipProcessingJobs.h"
// Constructor responsible to choose processing type and apply to clip
2020-07-08 11:49:46 -03:00
ClipProcessingJobs::ClipProcessingJobs(std::string processingType, Clip& videoClip){
if(processingType == "Stabilize"){
stabilizeVideo(videoClip);
}
if(processingType == "Track")
trackVideo(videoClip);
}
// Apply object tracking to clip
2020-07-08 11:49:46 -03:00
void ClipProcessingJobs::trackVideo(Clip& videoClip){
// Opencv display window
cv::namedWindow("Display Image", cv::WINDOW_NORMAL );
// Create CVTracker object
CVTracker tracker;
// Start tracking
tracker.trackClip(videoClip);
// Save tracking data
2020-07-08 11:49:46 -03:00
tracker.SaveTrackedData("kcf_tracker.data");
// Create new Tracker Effect
EffectBase* trackerEffect = new Tracker("kcf_tracker.data");
// Apply Tracker Effect to clip
2020-07-08 11:49:46 -03:00
videoClip.AddEffect(trackerEffect);
}
// Apply stabilization to clip
2020-07-08 22:31:26 -03:00
void ClipProcessingJobs::stabilizeVideo(Clip& videoClip){
2020-07-08 11:49:46 -03:00
// create CVStabilization object
CVStabilization stabilizer;
// Start stabilization process
2020-07-08 22:31:26 -03:00
stabilizer.ProcessClip(videoClip);
2020-07-08 11:49:46 -03:00
// Save stabilization data
2020-07-08 22:31:26 -03:00
stabilizer.SaveStabilizedData("stabilization.data");
2020-07-08 11:49:46 -03:00
// Create new Stabilizer Effect
2020-07-08 22:31:26 -03:00
EffectBase* stabilizeEffect = new Stabilizer("stabilization.data");
// Apply Stabilizer Effect to clip
2020-07-08 22:31:26 -03:00
videoClip.AddEffect(stabilizeEffect);
2020-07-08 11:49:46 -03:00
}