MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ extract_scalar_energy()

MAYAFLUX_API double MayaFlux::Yantra::extract_scalar_energy ( const EnergyAnalysis analysis,
const std::string &  qualifier 
)
inline

Extract a named scalar from an EnergyAnalysis result.

Maps qualifier strings to scalar fields of the first channel in analysis. All scalar-valued fields of ChannelEnergy are addressable.

Supported qualifiers:

  • "mean_energy" mean energy across analysis windows
  • "max_energy" maximum window energy
  • "min_energy" minimum window energy
  • "variance" variance of window energy values
  • "dynamic_range" max_energy - min_energy
  • "event_count" number of detected energy events (peaks, zero crossings, etc.)
  • "window_count" number of analysis windows

An empty qualifier resolves to "mean_energy". Unknown qualifiers fall back to mean_energy.

Parameters
analysisResult produced by EnergyAnalyzer.
qualifierName of the scalar to extract.
Returns
Extracted double value, or 0.0 if channels is empty.

Definition at line 638 of file EnergyAnalyzer.hpp.

640{
641 if (analysis.channels.empty())
642 return 0.0;
643
644 const auto& ch = analysis.channels[0];
645 const std::string q = qualifier.empty() ? "mean_energy" : qualifier;
646
647 if (q == "mean_energy")
648 return ch.mean_energy;
649 if (q == "max_energy")
650 return ch.max_energy;
651 if (q == "min_energy")
652 return ch.min_energy;
653 if (q == "variance")
654 return ch.variance;
655 if (q == "dynamic_range")
656 return ch.max_energy - ch.min_energy;
657 if (q == "event_count")
658 return static_cast<double>(ch.event_positions.size());
659 if (q == "window_count")
660 return static_cast<double>(ch.energy_values.size());
661
662 return ch.mean_energy;
663}
double q
std::vector< ChannelEnergy > channels

References MayaFlux::Yantra::EnergyAnalysis::channels, and q.

Referenced by MayaFlux::Yantra::Granular::AttributeOp::compute_grain_attribute().

+ Here is the caller graph for this function: