| // See LICENSE for license details. |
| |
| //************************************************************************** |
| // Median filter (c version) |
| //-------------------------------------------------------------------------- |
| |
| void median( int n, int input[], int results[] ) |
| { |
| int A, B, C, i; |
| |
| // Zero the ends |
| results[0] = 0; |
| results[n-1] = 0; |
| |
| // Do the filter |
| for ( i = 1; i < (n-1); i++ ) { |
| |
| A = input[i-1]; |
| B = input[i]; |
| C = input[i+1]; |
| |
| if ( A < B ) { |
| if ( B < C ) |
| results[i] = B; |
| else if ( C < A ) |
| results[i] = A; |
| else |
| results[i] = C; |
| } |
| |
| else { |
| if ( A < C ) |
| results[i] = A; |
| else if ( C < B ) |
| results[i] = B; |
| else |
| results[i] = C; |
| } |
| |
| } |
| |
| } |