packages feed

CV-0.3.1.2: examples/MR-Edge.hs

{-#LANGUAGE ScopedTypeVariables #-}
module Main where

import CV.ColourUtils
import CV.Drawing
import CV.Filters
import CV.Edges
import CV.Image
import CV.ImageMathOp
import CV.MultiresolutionSpline 
import CV.Transforms 
import Control.Applicative
import Control.Monad
import Data.Maybe
import System.Environment
import qualified CV.ImageMath as IM
import CV.ConnectedComponents
import CV.Morphology

divLight x = IM.div x (gaussian (135,5) x)

main = do
    Just x <- loadImage "rynkky5.bmp" >>= return . fmap (enlarge n)
    let 
        operR = unsafeImageTo32F . IM.lessThan (-0.15) . (sobel (1,0) s3)
        operL = unsafeImageTo32F . IM.moreThan (0.005) . (sobel (1,0) s3)
        down oper = take n $ map oper $ iterate pyrDown x
        up oper = foldl1 (\a b -> (pyrUp a) `IM.min` b) $ reverse (down oper)
    saveImage "t2.png" $ (up operL :: Image GrayScale D32)
 where n = 5