From 65eed42ae2b9ca947bd7c08c2a102c1cf5dce8cc Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Thu, 8 Sep 2011 23:22:40 -0400 Subject: [PATCH] Bracket doubles instead of ints. This gives us /slightly/ more precision when bracketing after interpolation. --- src/MRI.hs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/MRI.hs b/src/MRI.hs index ce1bb7d..2dd6f65 100644 --- a/src/MRI.hs +++ b/src/MRI.hs @@ -21,10 +21,10 @@ mri_height = 256 mri_shape :: DIM3 mri_shape = (Z :. mri_depth :. mri_height :. mri_width) -mri_lower_threshold :: Int +mri_lower_threshold :: Double mri_lower_threshold = 1400 -mri_upper_threshold :: Int +mri_upper_threshold :: Double mri_upper_threshold = 2500 mri_slice3d :: DIM3 @@ -48,14 +48,14 @@ read_word16s path = do {-# INLINE bracket #-} -bracket :: Int -> Int -> Int -> Word16 -bracket low high x - | x < low = 0 - | x > high = 255 - | otherwise = truncate (r * 255) +bracket :: Double -> Word16 +bracket x + | x < mri_lower_threshold = 0 + | x > mri_upper_threshold = 255 + | otherwise = truncate (r * 255) where - numerator = fromIntegral (x - low) :: Double - denominator = fromIntegral (high - low) :: Double + numerator = x - mri_lower_threshold + denominator = mri_upper_threshold - mri_lower_threshold r = numerator/denominator @@ -69,11 +69,11 @@ swap_bytes :: (Shape sh) => (RawData sh) -> (RawData sh) swap_bytes arr = R.force $ R.map flip16 arr -bracket_array :: (Shape sh) => (RawData sh) -> (RawData sh) +bracket_array :: (Shape sh) => (Values sh) -> (RawData sh) bracket_array arr = R.force $ R.map f arr where - f = (bracket mri_lower_threshold mri_upper_threshold) . fromIntegral + f = bracket flip_y :: RawData3D -> RawData3D -- 2.43.2