Changeset 14820
- Timestamp:
- Sep 11, 2007, 2:15:28 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/tools/src/medianfilter.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/tools/src/medianfilter.c
r12902 r14820 9 9 10 10 int i, j, k, n, Npixels, Npixin, Npixrd, Npixlast, N; 11 int Npass, NFILES, Nfiles ;11 int Npass, NFILES, Nfiles, Nvalid; 12 12 13 13 char **filename; … … 15 15 Matrix out, *tmpmatr; 16 16 float *list, *v, *O; 17 float fmin, fmax, Nval, sum ;17 float fmin, fmax, Nval, sum, MinValid; 18 18 19 19 if ((N = get_argument (argc, argv, "-unsign"))) { 20 20 remove_argument (N, &argc, argv); 21 21 gfits_set_unsign_mode (TRUE); 22 } 23 24 MinValid = 1.0; 25 if ((N = get_argument (argc, argv, "-bad"))) { 26 remove_argument (N, &argc, argv); 27 MinValid = atof(argv[N]); 28 remove_argument (N, &argc, argv); 22 29 } 23 30 … … 64 71 ALLOCATE (tmpmatr, Matrix, Nfiles); 65 72 ALLOCATE (list, float, Nfiles); 73 74 /* 66 75 Nval = 0; 67 76 for (k = fmin*Nfiles; k < fmax*Nfiles; k++) { 68 77 Nval += 1.0; 69 78 } 79 */ 70 80 71 81 O = (float *) out.buffer; … … 87 97 fprintf (stderr, "starting sorts\n"); 88 98 for (j = 0; j < Npixrd; j++, O++) { 99 Nvalid = 0; 89 100 for (k = 0; k < Nfiles; k++) { 90 101 v = (float *)tmpmatr[k].buffer; 102 if (v[j] < MinValid) continue; 91 103 list[k] = v[j]; 104 Nvalid ++; 92 105 } 93 fsort (list, Nfiles); 106 if (Nvalid == 0) { 107 *O = 0.0; 108 continue; 109 } 110 fsort (list, Nvalid); 94 111 sum = 0; 95 for (k = fmin*Nfiles; k < fmax*Nfiles; k++) { 112 Nval = 0; 113 for (k = fmin*Nvalid; k < fmax*Nvalid; k++) { 96 114 sum += list[k]; 115 Nval ++; 97 116 } 98 117 *O = (sum / Nval);
Note:
See TracChangeset
for help on using the changeset viewer.
