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

◆ windowed_segments() [2/2]

MAYAFLUX_API std::vector< std::vector< double > > MayaFlux::windowed_segments ( const std::vector< double > &  data,
size_t  window_size,
size_t  hop_size 
)

Split single-channel data into overlapping windows.

Parameters
dataInput data
window_sizeSize of each window
hop_sizeStep size between windows
Returns
Vector of windowed segments

Definition at line 901 of file Yantra.cpp.

904{
905 auto extractor = std::make_shared<Yantra::FeatureExtractor<>>(window_size, hop_size,
906 Yantra::ExtractionMethod::OVERLAPPING_WINDOWS);
907 extractor->set_parameter("overlap", double(hop_size) / window_size);
908
910 auto result = extractor->apply_operation(input);
911
912 auto extracted_data = result.data[0];
913
914 std::vector<std::vector<double>> segments;
915 for (size_t i = 0; i < extracted_data.size(); i += window_size) {
916 size_t end_idx = std::min(i + window_size, extracted_data.size());
917 segments.emplace_back(extracted_data.begin() + i, extracted_data.begin() + end_idx);
918 }
919
920 return segments;
921}
std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > > DataVariant
Multi-type data storage for different precision needs.
Definition NDData.hpp:73
T data
The actual computation data.
Definition DataIO.hpp:25
Input/Output container for computation pipeline data flow with structure preservation.
Definition DataIO.hpp:24

References MayaFlux::Yantra::IO< T >::data, and MayaFlux::Yantra::OVERLAPPING_WINDOWS.

Referenced by windowed_segments_per_channel().

+ Here is the caller graph for this function: