improved the stabilize effect integration

This commit is contained in:
Brenno
2020-07-15 10:29:08 -03:00
parent 6d547650dc
commit d6e0a69c1f
13 changed files with 225 additions and 164 deletions

View File

@@ -3,16 +3,19 @@
// Constructor responsible to choose processing type and apply to clip
ClipProcessingJobs::ClipProcessingJobs(std::string processingType, Clip& videoClip){
if(processingType == "Stabilize"){
stabilizeVideo(videoClip);
}
if(processingType == "Track")
trackVideo(videoClip);
// if(processingType == "Stabilize"){
// std::cout<<"Stabilize";
// stabilizeVideo(videoClip);
// }
// if(processingType == "Track"){
// std::cout<<"Track";
// trackVideo(videoClip);
// }
}
// Apply object tracking to clip
void ClipProcessingJobs::trackVideo(Clip& videoClip){
std::string ClipProcessingJobs::trackVideo(Clip& videoClip){
// Opencv display window
cv::namedWindow("Display Image", cv::WINDOW_NORMAL );
@@ -23,28 +26,32 @@ void ClipProcessingJobs::trackVideo(Clip& videoClip){
tracker.trackClip(videoClip);
// Save tracking data
tracker.SaveTrackedData("kcf_tracker.data");
tracker.SaveTrackedData("/media/brenno/Data/projects/openshot/kcf_tracker.data");
// Create new Tracker Effect
EffectBase* trackerEffect = new Tracker("kcf_tracker.data");
// Apply Tracker Effect to clip
videoClip.AddEffect(trackerEffect);
// Return path to protobuf saved data
return "/media/brenno/Data/projects/openshot/kcf_tracker.data";
}
// Apply stabilization to clip
void ClipProcessingJobs::stabilizeVideo(Clip& videoClip){
std::string ClipProcessingJobs::stabilizeVideo(Clip& videoClip){
// create CVStabilization object
CVStabilization stabilizer;
// Start stabilization process
stabilizer.ProcessClip(videoClip);
// Save stabilization data
stabilizer.SaveStabilizedData("stabilization.data");
stabilizer.SaveStabilizedData("/media/brenno/Data/projects/openshot/stabilization.data");
// Create new Stabilizer Effect
EffectBase* stabilizeEffect = new Stabilizer("stabilization.data");
// Apply Stabilizer Effect to clip
videoClip.AddEffect(stabilizeEffect);
// Return path to protobuf saved data
return "/media/brenno/Data/projects/openshot/stabilization.data";
}
}
int ClipProcessingJobs::GetProgress(){
return processingProgress;
}
void ClipProcessingJobs::CancelProcessing(){
stopProcessing = true;
}