REPA:调整图像大小

时间:2017-07-30 18:28:16

标签: arrays image haskell repa

我正在尝试,给定图像,生成一个原始宽度和高度的两倍

我正在使用haskell的REPA库(https://hackage.haskell.org/package/repa-3.4.1.2/docs/Data-Array-Repa.html),并遵循本教程(https://wiki.haskell.org/Numeric_Haskell:_A_Repa_Tutorial)。

main :: IO () 
main = do
    [f, path] <- getArgs
    (RGB v) <- runIL $ readImage f
        let newImage = (computeS $ twiceSize v) :: Array F DIM3 Word8
        runIL $ writeImage (path) (RGB newImage)

twiceSize :: (Source r e) => Array r DIM3 e -> Array D DIM3 e
twiceSize img = something img newImage
   where
      (Z :. originalWidth :. originalHeight  :. k) = extent img
      newImage = (Z :. originalWidth*2 :. originalHeight*2 :. k)
      something a b = ... 

现在,这些是我的想法:

  • 1)获取原始图像宽度高度

  • 2)生成一个大小合适的新数组:

  • 3)使用原始文件填充新数组,并带有一些功能。

问题是,我真的不知道如何实现积分2)和3)。 &#34; something&#34; 函数需要做什么才能填充新数组?我应该使用newImage上的地图吗?

提前致谢。

0 个答案:

没有答案