我想解决Haskell中的一些图像处理问题.我正在使用数百万像素的双色调(位图)和彩色图像.我有很多问题:
我应该在什么基础上选择Vector.Unboxed和UArray?它们都是未装箱的阵列,但Vector抽象似乎大量宣传,尤其是循环融合.是Vector总是更好?如果没有,我何时应该使用哪种表示?
对于彩色图像,我希望存储16位整数的三元组或单精度浮点数的三元组.为此目的,是Vector或者UArray更容易使用?性能更高?
对于双色调图像,我需要每像素仅存储1位.是否有预定义的数据类型可以通过将多个像素打包成一个单词来帮助我,或者我是靠自己?
最后,我的数组是二维的.我想我可以处理由表示强加的额外间接作为"数组数组"(或向量向量),但我更喜欢具有索引映射支持的抽象.任何人都可以从标准库或Hackage推荐任何东西吗?
我是一名功能程序员,不需要变异:-)