Я пытаюсь изучить компоненты 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
. Почему эти типы не совпадают? Я прочитал Repa Tutorial на Haskell wiki, но я до сих пор не вижу, как это сделать.
D'oh! На самом деле это была проблема. Я должен был это заподозрить. И теперь я понимаю сообщение об ошибке. – mhwombat