{-#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