Changeset 24481 for trunk/psLib/src/imageops/psImageBackground.c
- Timestamp:
- Jun 17, 2009, 8:46:53 PM (17 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/imageops/psImageBackground.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/imageops/psImageBackground.c
r21183 r24481 52 52 53 53 // Minimum and maximum values 54 float min = values->data.F32[0];55 float max = values->data.F32[0];54 float min = +PS_MAX_F32; 55 float max = -PS_MAX_F32; 56 56 57 57 // select a subset of the image pixels to measure the stats 58 58 long n = 0; // Number of actual pixels in subset 59 for (long i = 0; i < Nsubset; i++) { 60 double frnd = psRandomUniform(rng); 61 int pixel = Npixels * frnd; 62 int ix = pixel % nx; 63 int iy = pixel / nx; 59 if (Nsubset >= Npixels) { 60 // if we have an image smaller than Nsubset, just loop over the image pixels 61 for (int iy = 0; iy < ny; iy++) { 62 for (int ix = 0; ix < nx; ix++) { 63 if (!isfinite(image->data.F32[iy][ix]) || (mask && mask->data.PS_TYPE_IMAGE_MASK_DATA[iy][ix] & maskValue)) { 64 continue; 65 } 64 66 65 if (!isfinite(image->data.F32[iy][ix]) || (mask && mask->data.PS_TYPE_IMAGE_MASK_DATA[iy][ix] & maskValue)) { 66 continue; 67 } 67 float value = image->data.F32[iy][ix]; 68 min = PS_MIN(value, min); 69 max = PS_MAX(value, max); 70 values->data.F32[n] = value; 71 n++; 72 } 73 } 74 } else { 75 for (long i = 0; i < Nsubset; i++) { 76 double frnd = psRandomUniform(rng); 77 int pixel = Npixels * frnd; 78 int ix = pixel % nx; 79 int iy = pixel / nx; 68 80 69 float value = image->data.F32[iy][ix]; 70 min = PS_MIN(value, min); 71 max = PS_MIN(value, max); 72 values->data.F32[n] = value; 73 n++; 81 if (!isfinite(image->data.F32[iy][ix]) || (mask && mask->data.PS_TYPE_IMAGE_MASK_DATA[iy][ix] & maskValue)) { 82 continue; 83 } 84 85 float value = image->data.F32[iy][ix]; 86 min = PS_MIN(value, min); 87 max = PS_MAX(value, max); 88 values->data.F32[n] = value; 89 n++; 90 } 74 91 } 75 92 if (n < 0.01*Nsubset) {
Note:
See TracChangeset
for help on using the changeset viewer.
