packages feed

CV-0.3.1.2: examples/video.hs

{-#LANGUAGE ScopedTypeVariables#-}
module Main where
import CV.Image
import CV.Video
import Utils.Stream

main = do
    print "finding capture"
    Just cap <- captureFromCam (-1)
    print "capture acquired"
    let frameSize = getFrameSize cap
    writer <- createVideoWriter "test.mpg" MPG4 24 frameSize False
    imgs :: [Image RGB D32] <- runStream . sideEffect (\i -> writeFrame writer (unsafeImageTo8Bit i >> print "frame taken") 
                                         . takeS (6*6) 
                                         $ streamFromVideo cap
    print (map getSize imgs)
    saveImage "video.png"  $ montage (length imgs,1) 2 (imgs)