如何从图像中提取列表矢量问题

问题描述

大家好,我是 Haskell 的初学者,我正在尝试从 Bmp 图像中获取向量,我正在使用下面的这个函数

readMatrixfromImage :: FilePath -> IO [Double]
readMatrixfromImage image = do 
       x <- readImageFromBMPa image -- 'x' est alors de type t
       let (Right r) = x
       let a = toUnBoxed r
       let b = U.toList a
       let b' = Prelude.map (\v -> (fromIntegral v :: Double)/255.0  - 1)  b
       let c = Prelude.map abs b'
       return c

但我收到以下错误,这段代码在不同的机器上工作正常。所以我猜它是关于库版本的,在此先感谢您

Couldn't match expected type ‘Vector a’
                  with actual type ‘vector-0.12.1.2:Data.Vector.UnBoxed.Base.Vector
                                      Word8’
      NB: ‘vector-0.12.1.2:Data.Vector.UnBoxed.Base.Vector’
            is defined in ‘Data.Vector.UnBoxed.Base’
                in package ‘vector-0.12.1.2’
          ‘Vector’
            is defined in ‘Data.Vector.UnBoxed.Base’
                in package ‘vector-0.12.2.0’
    • In the first argument of ‘U.toList’,namely ‘a’
      In the expression: U.toList a
      In an equation for ‘b’: b = U.toList a
    • Relevant bindings include b :: [a] (bound at Tools.hs:124:12)
    |
124 |        let b = U.toList a
    |                         ^

解决方法

正如 leftaroundabout 和 brad 解释的那样,结果我有两个版本的 Vector 是由安装 repa 库引起的,我删除了一个,它工作得很好。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...