3

画像内のピクセルの RGB コンポーネントを調べようとしていますが、その方法がわかりません。

import Data.Array.Repa
import Data.Array.Repa.IO.DevIL
import Data.Word (Word8)

main = do
  (RGB ps) <- runIL $ readImage "test.jpeg"
  let k = (Z :. 142) :. 212 :. 0 :: DIM3
  print $ ps ! k

私が得るエラーは次のとおりです。

[1 of 1] Compiling Main             ( amy.hs, interpreted )

amy.hs:8:15:
    Couldn't match expected type `Array r0 DIM3 a0'
                with actual type `repa-3.2.3.1:Data.Array.Repa.Base.Array
                                    repa-3.2.3.1:Data.Array.Repa.Repr.ForeignPtr.F
                                    repa-3.2.3.1:Data.Array.Repa.Index.DIM3
                                    Word8'
    In the first argument of `(!)', namely `ps'
    In the second argument of `($)', namely `ps ! k'
    In a stmt of a 'do' block: print $ ps ! k
Failed, modules loaded: none.

まず、メッセージがわかりません。コンパイラが を期待しているように見えたArray something DIM3 somethingのに、Array F DIM3 Word8. これらのタイプが一致しないのはなぜですか? Haskell wiki のRepa チュートリアルを読みましたが、これを機能させる方法がまだわかりません。

4

1 に答える 1