diff options
author | Thomas White <taw@physics.org> | 2011-06-07 18:09:52 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2012-02-22 15:27:28 +0100 |
commit | 60572e7d69ffda00c7738168c0cd8ed83c3fb363 (patch) | |
tree | 410ea40bb9a1c131efc5a20aee59f13dd310adee | |
parent | b7050c2de9a6e990fac39554d65018b641397dee (diff) |
Add half a pixel to coordinates when integrating peak
Choose whichever one of these reasons makes most sense to you:
1. The centroid operation gives the position as a "pixel index",
but we really want it as a distance in pixels from the corner.
2. If all the intensity is in one pixel, the best estimate of
where the photons hit is in the middle of the pixel, not its
corner.
-rw-r--r-- | src/peaks.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/peaks.c b/src/peaks.c index c542e44c..61f5fa5a 100644 --- a/src/peaks.c +++ b/src/peaks.c @@ -246,11 +246,11 @@ int integrate_peak(struct image *image, int cfs, int css, /* The centroid is excitingly undefined if there is no intensity */ if ( centroid && (total != 0) ) { - *pfs = (double)fsct / total; - *pss = (double)ssct / total; + *pfs = ((double)fsct / total) + 0.5; + *pss = ((double)ssct / total) + 0.5; } else { - *pfs = (double)cfs; - *pss = (double)css; + *pfs = (double)cfs + 0.5; + *pss = (double)css + 0.5; } if ( bgsub ) { *intensity = total - pixel_counts*noise_mean; |