最佳答案
我想解决一些哈斯克尔的图像处理问题。我正在处理双位(位图)和彩色图像与数百万像素。我有几个问题:
我应该在 Vector.Unboxed
和 UArray
之间选择什么基础?它们都是未装箱的数组,但是 Vector
抽象似乎被大肆宣传,特别是在循环融合方面。Vector
总是更好吗?如果没有,我应该在什么时候使用哪种表示法?
对于彩色图像,我希望存储16位整数的三元组或单精度浮点数的三元组。为此,Vector
或 UArray
是否更容易使用?更有表现力?
For bitonal images I will need to store only 1 bit per pixel. Is there a predefined datatype that can help me here by packing multiple pixels into a word, or am I on my own?
最后,我的数组是二维的。我认为我可以处理“数组的数组”(或向量的向量)这种表示所带来的额外的间接性,但是我更喜欢具有索引映射支持的抽象。有人能从标准库或 Hackage 中推荐任何东西吗?
我是一个函数式程序员,不需要变异: -)