MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
VisionAnalyzer.cpp
Go to the documentation of this file.
1#include "VisionAnalyzer.hpp"
2#include <numeric>
3
4namespace MayaFlux::Yantra {
5
7 const VisionAnalysis& analysis, const std::string& qualifier)
8{
9 const auto& f = analysis.frame;
10
11 if (qualifier == "box_count")
12 return static_cast<double>(f.boxes.size());
13 if (qualifier == "contour_count")
14 return static_cast<double>(f.contours.size());
15 if (qualifier == "keypoint_count")
16 return static_cast<double>(f.keypoints.size());
17 if (qualifier == "track_count")
18 return static_cast<double>(f.tracks.size());
19 if (qualifier == "component_count")
20 return static_cast<double>(f.components.count);
21 if (qualifier == "mean_gradient_magnitude") {
22 const auto& mag = f.gradient.magnitude;
23 if (mag.empty())
24 return 0.0;
25 return std::accumulate(mag.begin(), mag.end(), 0.0)
26 / static_cast<double>(mag.size());
27 }
28
29 return 0.0;
30}
31
32} // namespace MayaFlux::Yantra
double extract_scalar_vision(const VisionAnalysis &analysis, const std::string &qualifier)
Extract a named scalar from a VisionAnalysis result.
std::vector< float > magnitude
Gradient magnitude, normalised to [0, 1].
Definition Gradient.hpp:25
Kinesis::Vision::GradientResult gradient
Analysis result produced by VisionAnalyzer for one frame.