X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FMRI.hs;h=094991c2dac537b38e18bd992b7dfe90737ea726;hb=3544d15ebbd0176c9aac2fd0e0e94468abc56879;hp=f63c729797cbdba81937736338506070de3c7bcc;hpb=715be016934300f596a11e4fc5b8ca2ec42d6c34;p=spline3.git diff --git a/src/MRI.hs b/src/MRI.hs index f63c729..094991c 100644 --- a/src/MRI.hs +++ b/src/MRI.hs @@ -20,11 +20,13 @@ where import Data.Word import Data.Bits -import Data.Array.Repa as R -import Data.Array.Repa.Repr.Unboxed as R -import Data.Array.Repa.IO.Binary as R +import Data.Array.Repa as R +import Data.Array.Repa.Eval as R (now) +import Data.Array.Repa.Repr.Unboxed as R +import Data.Array.Repa.IO.Binary as R import Data.Array.Repa.Algorithms.ColorRamp as R -import Data.Array.Repa.IO.BMP as R (writeImageToBMP) +import Data.Array.Repa.Operators.Traversal as R (unsafeTraverse) +import Data.Array.Repa.IO.BMP as R (writeImageToBMP) import Values @@ -64,8 +66,8 @@ type ColorData sh = Array U sh RGB read_word16s :: FilePath -> IO RawData3D read_word16s path = do arr <- R.readArrayFromStorableFile path mri_shape - arr' <- now $ R.copy arr - return arr' + now $ R.copyS arr + bracket :: Double -> Word16 @@ -87,19 +89,19 @@ flip16 xx = {-# INLINE swap_bytes #-} swap_bytes :: (Shape sh, Repr r Word16) => Array r sh Word16 -> Array D sh Word16 -swap_bytes arr = - R.map flip16 arr +swap_bytes = + R.map flip16 bracket_array :: Shape sh => Values sh -> Array D sh Word16 -bracket_array arr = - R.map bracket arr +bracket_array = + R.map bracket {-# INLINE round_array #-} round_array :: Shape sh => Values sh -> Array D sh Word16 -round_array arr = - R.map round arr +round_array = + R.map round flip_y :: Repr r Word16 => Array r DIM3 Word16 -> Array D DIM3 Word16 @@ -123,7 +125,7 @@ write_word16s = R.writeArrayToStorableFile values_to_colors :: (Shape sh) => (Values sh) -> (ColorData sh) values_to_colors arr = - R.compute $ R.map (truncate_rgb . ramp_it) arr + R.computeS $ R.map (truncate_rgb . ramp_it) arr where ramp_it :: Double -> (Double, Double, Double) ramp_it x = @@ -151,4 +153,4 @@ write_values_slice_to_bitmap v3d path = R.writeImageToBMP path colors where arr_bracketed = bracket_array v3d - colors = values_to_colors $ R.compute $ R.map fromIntegral arr_bracketed + colors = values_to_colors $ R.computeS $ R.map fromIntegral arr_bracketed