3
我試圖檢查圖像中像素的RGB分量,但我無法弄清楚如何去做。用repa-devil讀取索引圖像
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 Tutorial,但我仍未看到如何完成此項工作。
D'oh!這確實是問題。我應該懷疑這一點。現在我明白了錯誤信息。 – mhwombat