aboutsummaryrefslogtreecommitdiff
path: root/src/peaks.c
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2010-01-21 15:36:44 +0100
committerThomas White <taw@physics.org>2010-01-21 15:36:44 +0100
commit552d860fa1bf4fd699d0af2e8ca0a13345fc624b (patch)
tree0185aa85891d64cd7c521dba06dc04d67c757ccf /src/peaks.c
parent395b2bd7770fb9a9f11be939c22d7abce702e4da (diff)
Fix hdfile layering violations
Diffstat (limited to 'src/peaks.c')
-rw-r--r--src/peaks.c74
1 files changed, 1 insertions, 73 deletions
diff --git a/src/peaks.c b/src/peaks.c
index 0e87135b..c6394787 100644
--- a/src/peaks.c
+++ b/src/peaks.c
@@ -26,6 +26,7 @@
#include "index.h"
#include "peaks.h"
#include "detector.h"
+#include "filters.h"
#define PEAK_WINDOW_SIZE (10)
@@ -267,79 +268,6 @@ static void cull_peaks(struct image *image)
}
-static int compare_vals(const void *ap, const void *bp)
-{
- const signed int a = *(signed int *)ap;
- const signed int b = *(signed int *)bp;
-
- if ( a > b ) return 1;
- if ( a < b ) return -1;
- return 0;
-}
-
-
-static void clean_panel(struct image *image, int sx, int sy)
-{
- int x, y;
- const int s = sizeof(signed int);
-
- for ( y=0; y<128; y++ ) {
-
- signed int vals[512];
- double m;
-
- for ( x=0; x<512; x++ ) {
- vals[x] = image->data[(x+sx)+(y+sy)*image->width];
- }
-
- qsort(&vals[0], 512, s, compare_vals);
-
- m = gsl_stats_int_median_from_sorted_data(vals, 1, 512);
-
- for ( x=0; x<512; x++ ) {
- image->data[(x+sx)+(y+sy)*image->width] -= m;
- }
-
- }
-
- for ( x=0; x<512; x++ ) {
-
- signed int vals[128];
- double m;
-
- for ( y=0; y<128; y++ ) {
- vals[y] = image->data[(x+sx)+(y+sy)*image->width];
- }
-
- qsort(&vals[0], 128, s, compare_vals);
-
- m = gsl_stats_int_median_from_sorted_data(vals, 1, 128);
-
- for ( y=0; y<128; y++ ) {
- image->data[(x+sx)+(y+sy)*image->width] -= m;
- }
-
- }
-}
-
-
-/* Pre-processing to make life easier */
-void clean_image(struct image *image)
-{
- int px, py;
-
- if ( (image->width != 1024) || (image->height != 1024) ) return;
-
- for ( px=0; px<2; px++ ) {
- for ( py=0; py<8; py++ ) {
-
- clean_panel(image, 512*px, 128*py);
-
- }
- }
-}
-
-
void search_peaks(struct image *image)
{
int x, y, width, height;