median_filter.c 663 B

123456789101112131415161718192021
  1. // http://electronix.ru/forum/index.php?showtopic=114436&view=findpost&p=1180944
  2. datatype median( datatype array, int length) // массив и его длина
  3. {
  4. int slit = length/2;
  5. for( int i=0; i < length; i++) {
  6. int s1=0, s2=0;
  7. datatype val = array[i];
  8. for( int j=0; j < length; j++) {
  9. if( array[j] < val) {
  10. if( ++s1 > slit) break;
  11. } else if( array[j] > val) {
  12. if( ++s2 > slit) break;
  13. }
  14. }
  15. return val;
  16. }
  17. return 0; // чистая формальность, досюда исполнение никогда не доходит
  18. }