我正在尝试,给定一个图像,生成一个具有原始宽度和高度两倍的新图像。
我正在使用 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) 点。" something
"函数需要做什么才能填充新数组?我应该使用地图newImage
吗?
提前致谢。