medianFilter 2020Ver
Dependents: Tourobo2022_TBCMotorDriver
MedianFilter.cpp@1:5942768f10c1, 2020-03-24 (annotated)
- Committer:
- YutaTogashi
- Date:
- Tue Mar 24 15:40:42 2020 +0000
- Revision:
- 1:5942768f10c1
- Parent:
- 0:039669d0faad
20200325 Add_readme
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YutaTogashi | 0:039669d0faad | 1 | #include "MedianFilter.h" |
YutaTogashi | 0:039669d0faad | 2 | |
YutaTogashi | 0:039669d0faad | 3 | MedianFilter::MedianFilter() {} |
YutaTogashi | 0:039669d0faad | 4 | |
YutaTogashi | 0:039669d0faad | 5 | void MedianFilter::sort(void *base,size_t n,size_t size,bool form) { |
YutaTogashi | 0:039669d0faad | 6 | if(form == 0) qsort(base,n,size,MedianFilter::ascending_order); |
YutaTogashi | 0:039669d0faad | 7 | else qsort(base,n,size,MedianFilter::descending_order); |
YutaTogashi | 0:039669d0faad | 8 | } |
YutaTogashi | 0:039669d0faad | 9 | |
YutaTogashi | 0:039669d0faad | 10 | int MedianFilter::getIntValue(int array[],size_t size) { |
YutaTogashi | 0:039669d0faad | 11 | int number = size / 2; |
YutaTogashi | 0:039669d0faad | 12 | if(number % 2) return array[number]; |
YutaTogashi | 0:039669d0faad | 13 | else return (int)(((array[number-1] + array[number]) / 2.0f)); |
YutaTogashi | 0:039669d0faad | 14 | } |
YutaTogashi | 0:039669d0faad | 15 | |
YutaTogashi | 0:039669d0faad | 16 | float MedianFilter::getFloatValue(float array[],size_t size) { |
YutaTogashi | 0:039669d0faad | 17 | int number = size / 2; |
YutaTogashi | 0:039669d0faad | 18 | if(number % 2) return array[number]; |
YutaTogashi | 0:039669d0faad | 19 | else return ((array[number-1] + array[number]) / 2.0f); |
YutaTogashi | 0:039669d0faad | 20 | } |
YutaTogashi | 0:039669d0faad | 21 | |
YutaTogashi | 0:039669d0faad | 22 | int MedianFilter::ascending_order(const void *c1, const void *c2) { |
YutaTogashi | 0:039669d0faad | 23 | int tmp1 = *(int *)c1; |
YutaTogashi | 0:039669d0faad | 24 | int tmp2 = *(int *)c2; |
YutaTogashi | 0:039669d0faad | 25 | |
YutaTogashi | 0:039669d0faad | 26 | if( tmp1 < tmp2 ) return -1; |
YutaTogashi | 0:039669d0faad | 27 | if( tmp1 == tmp2 ) return 0; |
YutaTogashi | 0:039669d0faad | 28 | if( tmp1 > tmp2 ) return 1; |
YutaTogashi | 0:039669d0faad | 29 | return 0; |
YutaTogashi | 0:039669d0faad | 30 | } |
YutaTogashi | 0:039669d0faad | 31 | |
YutaTogashi | 0:039669d0faad | 32 | int MedianFilter::descending_order(const void *c1, const void *c2) { |
YutaTogashi | 0:039669d0faad | 33 | int tmp1 = *(int *)c1; |
YutaTogashi | 0:039669d0faad | 34 | int tmp2 = *(int *)c2; |
YutaTogashi | 0:039669d0faad | 35 | |
YutaTogashi | 0:039669d0faad | 36 | if( tmp1 < tmp2 ) return 1; |
YutaTogashi | 0:039669d0faad | 37 | if( tmp1 == tmp2 ) return 0; |
YutaTogashi | 0:039669d0faad | 38 | if( tmp1 > tmp2 ) return -1; |
YutaTogashi | 0:039669d0faad | 39 | return 0; |
YutaTogashi | 0:039669d0faad | 40 | } |