OpenShot Library | libopenshot
0.4.0
|
This class contains the properties of a tracked object and functions to manipulate it. More...
#include <TrackedObjectBBox.h>
Public Member Functions | |
Json::Value | add_property_json (std::string name, float value, std::string type, std::string memo, const Keyframe *keyframe, float min_value, float max_value, bool readonly, int64_t requested_frame) const |
void | AddBox (int64_t _frame_num, float _cx, float _cy, float _width, float _height, float _angle) override |
Add a BBox to the BoxVec map. More... | |
void | clear () |
Clear the BoxVec map. More... | |
bool | Contains (int64_t frame_number) const |
Check if there is a bounding-box in the given frame. More... | |
bool | ExactlyContains (int64_t frame_number) const override |
Check if there is a bounding-box in the exact frame number. More... | |
double | FrameNToTime (int64_t frame_number, double time_scale) const |
Get the time of the given frame. More... | |
Fraction | GetBaseFPS () |
Return the object's BaseFps. More... | |
BBox | GetBox (int64_t frame_number) |
Return a bounding-box from BoxVec with it's properties adjusted by the Keyframes. More... | |
BBox | GetBox (int64_t frame_number) const |
Const-cast of the GetBox function, so that it can be called inside other cont function. More... | |
std::map< std::string, float > | GetBoxValues (int64_t frame_number) const override |
Return a map that contains the bounding box properties and it's keyframes indexed by their names. More... | |
int64_t | GetLength () const |
Get the size of BoxVec map. More... | |
BBox | InterpolateBoxes (double t1, double t2, BBox left, BBox right, double target) |
Interpolate the bouding-boxes properties. More... | |
std::string | Json () const override |
Get and Set JSON methods. More... | |
Json::Value | JsonValue () const override |
Generate Json::Value for this object. More... | |
bool | LoadBoxData (std::string inputFilePath) |
Load the bounding-boxes information from the protobuf file. More... | |
Json::Value | PropertiesJSON (int64_t requested_frame) const override |
void | RemoveBox (int64_t frame_number) |
Remove a bounding-box from the BoxVec map. More... | |
void | ScalePoints (double scale) override |
Update the TimeScale member variable. More... | |
void | SetBaseFPS (Fraction fps) |
Update object's BaseFps. More... | |
void | SetJson (const std::string value) override |
Load JSON string into this object. More... | |
void | SetJsonValue (const Json::Value root) override |
Load Json::Value into this object. More... | |
TrackedObjectBBox () | |
Default Constructor. More... | |
TrackedObjectBBox (int Red, int Green, int Blue, int Alfa) | |
Public Member Functions inherited from openshot::TrackedObjectBase | |
Json::Value | add_property_choice_json (std::string name, int value, int selected_value) const |
Generate JSON choice for a property (dropdown properties) More... | |
std::string | Id () const |
Get the id of this object. More... | |
void | Id (std::string _id) |
Set the id of this object. More... | |
ClipBase * | ParentClip () const |
Get and set the parentClip of this object. More... | |
void | ParentClip (ClipBase *clip) |
TrackedObjectBase () | |
Default constructor. More... | |
TrackedObjectBase (std::string _id) | |
Constructor which takes an object ID. More... | |
virtual | ~TrackedObjectBase ()=default |
Destructor. More... | |
Public Attributes | |
Color | background |
Background fill color. More... | |
Keyframe | background_alpha |
Background box opacity. More... | |
Keyframe | background_corner |
Radius of rounded corners. More... | |
std::map< double, BBox > | BoxVec |
Index the bounding-box by time of each frame. More... | |
Keyframe | delta_x |
X-direction displacement Keyframe. More... | |
Keyframe | delta_y |
Y-direction displacement Keyframe. More... | |
std::string | protobufDataPath |
Path to the protobuf file that holds the bounding box points across the frames. More... | |
Keyframe | rotation |
Rotation Keyframe. More... | |
Keyframe | scale_x |
X-direction scale Keyframe. More... | |
Keyframe | scale_y |
Y-direction scale Keyframe. More... | |
Color | stroke |
Border line color. More... | |
Keyframe | stroke_alpha |
Stroke box opacity. More... | |
Keyframe | stroke_width |
Thickness of border line. More... | |
Public Attributes inherited from openshot::TrackedObjectBase | |
Keyframe | draw_box |
Keyframe to determine if a specific box is drawn (or hidden) More... | |
Keyframe | visible |
Keyframe to track if a box is visible in the current frame (read-only) More... | |
Additional Inherited Members | |
Protected Attributes inherited from openshot::TrackedObjectBase | |
std::string | id |
ClipBase * | parentClip |
This class contains the properties of a tracked object and functions to manipulate it.
The bounding-box displacement in X and Y directions, it's width, height and rotation variation over the frames are set as openshot::Keyframe objects.
The bounding-box information over the clip's frames are saved into a protobuf file and loaded into an object of this class.
Definition at line 130 of file TrackedObjectBBox.h.
TrackedObjectBBox::TrackedObjectBBox | ( | ) |
Default Constructor.
Definition at line 28 of file TrackedObjectBBox.cpp.
TrackedObjectBBox::TrackedObjectBBox | ( | int | Red, |
int | Green, | ||
int | Blue, | ||
int | Alfa | ||
) |
Definition at line 33 of file TrackedObjectBBox.cpp.
Json::Value TrackedObjectBBox::add_property_json | ( | std::string | name, |
float | value, | ||
std::string | type, | ||
std::string | memo, | ||
const Keyframe * | keyframe, | ||
float | min_value, | ||
float | max_value, | ||
bool | readonly, | ||
int64_t | requested_frame | ||
) | const |
Definition at line 461 of file TrackedObjectBBox.cpp.
Referenced by PropertiesJSON().
|
overridevirtual |
Add a BBox to the BoxVec map.
Reimplemented from openshot::TrackedObjectBase.
Definition at line 45 of file TrackedObjectBBox.cpp.
Referenced by LoadBoxData(), and openshot::ObjectDetection::LoadObjDetectdData().
void TrackedObjectBBox::clear | ( | ) |
Clear the BoxVec map.
Definition at line 294 of file TrackedObjectBBox.cpp.
Referenced by LoadBoxData().
bool TrackedObjectBBox::Contains | ( | int64_t | frame_number | ) | const |
Check if there is a bounding-box in the given frame.
Definition at line 82 of file TrackedObjectBBox.cpp.
|
overridevirtual |
Check if there is a bounding-box in the exact frame number.
Reimplemented from openshot::TrackedObjectBase.
Definition at line 96 of file TrackedObjectBBox.cpp.
double TrackedObjectBBox::FrameNToTime | ( | int64_t | frame_number, |
double | time_scale | ||
) | const |
Get the time of the given frame.
Definition at line 223 of file TrackedObjectBBox.cpp.
Referenced by AddBox(), Contains(), ExactlyContains(), GetBox(), and RemoveBox().
Fraction TrackedObjectBBox::GetBaseFPS | ( | ) |
Return the object's BaseFps.
Definition at line 218 of file TrackedObjectBBox.cpp.
BBox TrackedObjectBBox::GetBox | ( | int64_t | frame_number | ) |
Return a bounding-box from BoxVec with it's properties adjusted by the Keyframes.
Definition at line 125 of file TrackedObjectBBox.cpp.
Referenced by GetBox(), GetBoxValues(), and PropertiesJSON().
|
inline |
Const-cast of the GetBox function, so that it can be called inside other cont function.
Definition at line 182 of file TrackedObjectBBox.h.
|
overridevirtual |
Return a map that contains the bounding box properties and it's keyframes indexed by their names.
Reimplemented from openshot::TrackedObjectBase.
Definition at line 498 of file TrackedObjectBBox.cpp.
int64_t TrackedObjectBBox::GetLength | ( | ) | const |
Get the size of BoxVec map.
Definition at line 72 of file TrackedObjectBBox.cpp.
BBox TrackedObjectBBox::InterpolateBoxes | ( | double | t1, |
double | t2, | ||
BBox | left, | ||
BBox | right, | ||
double | target | ||
) |
Interpolate the bouding-boxes properties.
Definition at line 178 of file TrackedObjectBBox.cpp.
Referenced by GetBox().
|
overridevirtual |
Get and Set JSON methods.
Generate JSON string of this object
Implements openshot::TrackedObjectBase.
Definition at line 300 of file TrackedObjectBBox.cpp.
|
overridevirtual |
Generate Json::Value for this object.
Implements openshot::TrackedObjectBase.
Definition at line 307 of file TrackedObjectBBox.cpp.
Referenced by Json().
bool TrackedObjectBBox::LoadBoxData | ( | std::string | inputFilePath | ) |
Load the bounding-boxes information from the protobuf file.
Definition at line 235 of file TrackedObjectBBox.cpp.
|
overridevirtual |
Get all properties for a specific frame (perfect for a UI to display the current state of all properties at any time)
Implements openshot::TrackedObjectBase.
Definition at line 413 of file TrackedObjectBBox.cpp.
void TrackedObjectBBox::RemoveBox | ( | int64_t | frame_number | ) |
Remove a bounding-box from the BoxVec map.
Definition at line 110 of file TrackedObjectBBox.cpp.
|
overridevirtual |
Update the TimeScale member variable.
Reimplemented from openshot::TrackedObjectBase.
Definition at line 230 of file TrackedObjectBBox.cpp.
Referenced by SetJsonValue().
void TrackedObjectBBox::SetBaseFPS | ( | Fraction | fps | ) |
Update object's BaseFps.
Definition at line 212 of file TrackedObjectBBox.cpp.
|
overridevirtual |
Load JSON string into this object.
Implements openshot::TrackedObjectBase.
Definition at line 338 of file TrackedObjectBBox.cpp.
|
overridevirtual |
Load Json::Value into this object.
Implements openshot::TrackedObjectBase.
Definition at line 356 of file TrackedObjectBBox.cpp.
Referenced by SetJson().
Color openshot::TrackedObjectBBox::background |
Background fill color.
Definition at line 148 of file TrackedObjectBBox.h.
Referenced by JsonValue(), PropertiesJSON(), and SetJsonValue().
Keyframe openshot::TrackedObjectBBox::background_alpha |
Background box opacity.
Definition at line 143 of file TrackedObjectBBox.h.
Referenced by JsonValue(), PropertiesJSON(), and SetJsonValue().
Keyframe openshot::TrackedObjectBBox::background_corner |
Radius of rounded corners.
Definition at line 144 of file TrackedObjectBBox.h.
Referenced by JsonValue(), PropertiesJSON(), and SetJsonValue().
std::map<double, BBox> openshot::TrackedObjectBBox::BoxVec |
Index the bounding-box by time of each frame.
Definition at line 137 of file TrackedObjectBBox.h.
Referenced by AddBox(), clear(), Contains(), ExactlyContains(), GetBox(), GetLength(), and RemoveBox().
Keyframe openshot::TrackedObjectBBox::delta_x |
X-direction displacement Keyframe.
Definition at line 138 of file TrackedObjectBBox.h.
Referenced by GetBox(), GetBoxValues(), JsonValue(), PropertiesJSON(), and SetJsonValue().
Keyframe openshot::TrackedObjectBBox::delta_y |
Y-direction displacement Keyframe.
Definition at line 139 of file TrackedObjectBBox.h.
Referenced by GetBox(), GetBoxValues(), JsonValue(), PropertiesJSON(), and SetJsonValue().
std::string openshot::TrackedObjectBBox::protobufDataPath |
Path to the protobuf file that holds the bounding box points across the frames.
Definition at line 150 of file TrackedObjectBBox.h.
Referenced by SetJsonValue().
Keyframe openshot::TrackedObjectBBox::rotation |
Rotation Keyframe.
Definition at line 142 of file TrackedObjectBBox.h.
Referenced by GetBox(), GetBoxValues(), JsonValue(), PropertiesJSON(), and SetJsonValue().
Keyframe openshot::TrackedObjectBBox::scale_x |
X-direction scale Keyframe.
Definition at line 140 of file TrackedObjectBBox.h.
Referenced by GetBox(), GetBoxValues(), JsonValue(), PropertiesJSON(), and SetJsonValue().
Keyframe openshot::TrackedObjectBBox::scale_y |
Y-direction scale Keyframe.
Definition at line 141 of file TrackedObjectBBox.h.
Referenced by GetBox(), GetBoxValues(), JsonValue(), PropertiesJSON(), and SetJsonValue().
Color openshot::TrackedObjectBBox::stroke |
Border line color.
Definition at line 147 of file TrackedObjectBBox.h.
Referenced by JsonValue(), PropertiesJSON(), and SetJsonValue().
Keyframe openshot::TrackedObjectBBox::stroke_alpha |
Stroke box opacity.
Definition at line 146 of file TrackedObjectBBox.h.
Referenced by JsonValue(), openshot::ObjectDetection::LoadObjDetectdData(), PropertiesJSON(), and SetJsonValue().
Keyframe openshot::TrackedObjectBBox::stroke_width |
Thickness of border line.
Definition at line 145 of file TrackedObjectBBox.h.
Referenced by JsonValue(), PropertiesJSON(), and SetJsonValue().