]> gitweb.michael.orlitzky.com - spline3.git/commitdiff
Bracket doubles instead of ints. This gives us /slightly/ more precision when bracket...
authorMichael Orlitzky <michael@orlitzky.com>
Fri, 9 Sep 2011 03:22:40 +0000 (23:22 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Fri, 9 Sep 2011 03:22:40 +0000 (23:22 -0400)
src/MRI.hs

index ce1bb7d9d078e567ebde68323d1b112e4e9166f3..2dd6f6592e6e3bb7ac8d1eefbe73a4764e3cf787 100644 (file)
@@ -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