MayaFlux 1.0.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 683 of file EnergyAnalyzer.hpp.

685{
686 if (analysis.channels.empty())
687 return 0.0;
688
689 const auto& ch = analysis.channels[0];
690 const std::string q = qualifier.empty() ? "mean_energy" : qualifier;
691
692 if (q == "mean_energy")
693 return ch.mean_energy;
694 if (q == "max_energy")
695 return ch.max_energy;
696 if (q == "min_energy")
697 return ch.min_energy;
698 if (q == "variance")
699 return ch.variance;
700 if (q == "dynamic_range")
701 return ch.max_energy - ch.min_energy;
702 if (q == "event_count")
703 return static_cast<double>(ch.event_positions.size());
704 if (q == "window_count")
705 return static_cast<double>(ch.energy_values.size());
706
707 return ch.mean_energy;
708}
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: