X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FMRI.hs;h=2dd6f6592e6e3bb7ac8d1eefbe73a4764e3cf787;hb=65eed42ae2b9ca947bd7c08c2a102c1cf5dce8cc;hp=ce1bb7d9d078e567ebde68323d1b112e4e9166f3;hpb=4a7ea6313df073bfd41fd69552a338c7d7cd6f47;p=spline3.git 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