CPPxDIC
C++ Digital Image Correlation library for fingertip 3D reconstruction
Loading...
Searching...
No Matches
temporal_filter.h
Go to the documentation of this file.
1
8#ifndef TEMPORAL_FILTER_H
9#define TEMPORAL_FILTER_H
10
11#include <vector>
12#include <cmath>
13#include <limits>
14
15namespace cppxdic {
16
33std::vector<std::vector<double>> filterTime(
34 const std::vector<std::vector<double>>& data,
35 double freq_filt = 10.0,
36 double freq_acq = 50.0
37);
38
49std::tuple<
50 std::vector<std::vector<double>>,
51 std::vector<std::vector<double>>,
52 std::vector<std::vector<double>>
54 const std::vector<std::vector<double>>& disp_x,
55 const std::vector<std::vector<double>>& disp_y,
56 const std::vector<std::vector<double>>& disp_z,
57 double freq_filt = 10.0,
58 double freq_acq = 50.0
59);
60
61namespace detail {
62
69std::pair<std::vector<double>, std::vector<double>>
70butterLowPass(int order, double wn);
71
79std::vector<double> filtfilt(
80 const std::vector<double>& b,
81 const std::vector<double>& a,
82 const std::vector<double>& x
83);
84
88std::vector<double> filter(
89 const std::vector<double>& b,
90 const std::vector<double>& a,
91 const std::vector<double>& x
92);
93
94} // namespace detail
95
96} // namespace cppxdic
97
98#endif // TEMPORAL_FILTER_H
std::vector< double > filter(const std::vector< double > &b, const std::vector< double > &a, const std::vector< double > &x)
Forward IIR filter.
std::pair< std::vector< double >, std::vector< double > > butterLowPass(int order, double wn)
Design Butterworth filter coefficients.
std::vector< double > filtfilt(const std::vector< double > &b, const std::vector< double > &a, const std::vector< double > &x)
Zero-phase digital filtering (MATLAB filtfilt equivalent)
DataSerializer - Abstract base class for format-agnostic DIC data I/O.
std::tuple< std::vector< std::vector< double > >, std::vector< std::vector< double > >, std::vector< std::vector< double > > > filterTime3D(const std::vector< std::vector< double > > &disp_x, const std::vector< std::vector< double > > &disp_y, const std::vector< std::vector< double > > &disp_z, double freq_filt=10.0, double freq_acq=50.0)
Apply temporal filtering to 3D displacement vectors.
std::vector< std::vector< double > > filterTime(const std::vector< std::vector< double > > &data, double freq_filt=10.0, double freq_acq=50.0)
Apply temporal Butterworth low-pass filter to displacement data.
std::vector< int > order