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

◆ extract_peaks()

std::vector< std::vector< double > > MayaFlux::Yantra::extract_peaks ( const std::vector< std::span< const double > > &  channels,
double  threshold,
double  min_distance,
uint32_t  region_size 
)

Definition at line 37 of file ExtractionHelper.cpp.

42{
43 std::vector<std::vector<double>> result;
44 result.reserve(channels.size());
45 for (const auto& ch : channels) {
46 if (ch.size() < 3) {
47 result.emplace_back();
48 continue;
49 }
50
51 const auto [lo, hi] = std::ranges::minmax_element(ch);
52 if (*hi - *lo < std::numeric_limits<double>::epsilon()) {
53 result.emplace_back();
54 continue;
55 }
56 const auto pos = D::peak_positions(ch, threshold, static_cast<size_t>(min_distance));
57 result.push_back(D::slice_intervals(ch,
58 D::merge_intervals(D::regions_around_positions(pos, region_size / 2, ch.size()))));
59 }
60
61 return result;
62}

References MayaFlux::Kinesis::Discrete::merge_intervals(), MayaFlux::Kinesis::Discrete::peak_positions(), MayaFlux::Kinesis::Discrete::regions_around_positions(), and MayaFlux::Kinesis::Discrete::slice_intervals().

Referenced by MayaFlux::Yantra::FeatureExtractor< InputType, OutputType >::extract_implementation().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: