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