A median filter for floating point values
MedianFilter.cpp@2:269c66e647f8, 2016-09-26 (annotated)
- Committer:
- Kerneels Bezuidenhout
- Date:
- Mon Sep 26 20:55:13 2016 +0200
- Revision:
- 2:269c66e647f8
- Parent:
- 1:7e434a01533c
- Child:
- 3:ec86928ff12d
Fixed window initialisation
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Kerneels Bezuidenhout |
1:7e434a01533c | 1 | #include "MedianFilter.hpp" |
Kerneels Bezuidenhout |
1:7e434a01533c | 2 | |
Kerneels Bezuidenhout |
1:7e434a01533c | 3 | MedianFilter::MedianFilter(int size) |
Kerneels Bezuidenhout |
1:7e434a01533c | 4 | { |
Kerneels Bezuidenhout |
1:7e434a01533c | 5 | _size = size; |
Kerneels Bezuidenhout |
1:7e434a01533c | 6 | _n = 0; |
Kerneels Bezuidenhout |
2:269c66e647f8 | 7 | |
Kerneels Bezuidenhout |
2:269c66e647f8 | 8 | for( float i = 0; i < _n; i++) |
Kerneels Bezuidenhout |
2:269c66e647f8 | 9 | _window.push_back(i); |
Kerneels Bezuidenhout |
1:7e434a01533c | 10 | } |
Kerneels Bezuidenhout |
1:7e434a01533c | 11 | |
Kerneels Bezuidenhout |
1:7e434a01533c | 12 | float MedianFilter::Process(float val) |
Kerneels Bezuidenhout |
1:7e434a01533c | 13 | { |
Kerneels Bezuidenhout |
2:269c66e647f8 | 14 | _window.pop_front(); |
Kerneels Bezuidenhout |
2:269c66e647f8 | 15 | _window.push_back(val); |
Kerneels Bezuidenhout |
1:7e434a01533c | 16 | |
Kerneels Bezuidenhout |
1:7e434a01533c | 17 | deque<float> _temp(_window); |
Kerneels Bezuidenhout |
1:7e434a01533c | 18 | |
Kerneels Bezuidenhout |
2:269c66e647f8 | 19 | sort(_temp.begin(), temp.end()); |
Kerneels Bezuidenhout |
1:7e434a01533c | 20 | |
Kerneels Bezuidenhout |
1:7e434a01533c | 21 | return _temp[n/2]; |
Kerneels Bezuidenhout |
1:7e434a01533c | 22 | } |