CV-0.3.4: examples/pixelwise.hs
module Main where
import CV.Image
import CV.Edges
import qualified CV.ImageMath as IM
import CV.ColourUtils
import CV.Pixelwise
import CV.Filters
import qualified CV.Transforms as T
import Control.Applicative hiding ((<**>))
main = do
Just x <- loadImage "smallLena.jpg"
let y = T.flip T.Horizontal x
u = T.flip T.Vertical y
z = T.flip T.Vertical x
saveImage "PixelWise.png" $ montage (3,3) 5
[x
,y
,{-#SCC "+" #-} stretchHistogram . toImage $ ((+) <$$> x <+> y)
,{-#SCC "++++" #-} stretchHistogram . toImage $ ((\a b c d -> a+b+c+d) <$$> x
<+> y
<+> u
<+> z)
,{-#SCC "sin" #-}stretchHistogram . toImage $ fmap (sin . (*9)) . fromImage $ x
,stretchHistogram . toImage $ fmap log . fromImage $ x
,stretchHistogram . gaussian (3,3)
. toImage $ atan2 <$$> (sobel (1,0) s5 x)
<+> (sobel (0,1) s5 x)
,toImage $ fmap (\x -> if x > 0.5 then 0 else 1) . fromImage $ x
,toImage $ fmap (\x -> if x > 0.5 && x < 0.6 then 0 else 1) . fromImage $ x
]