CV-0.3: examples/maximalCC.hs
{-#LANGUAGE ParallelListComp,ScopedTypeVariables#-}
module Main where
import CV.Image
import CV.Drawing
import CV.ImageOp
import CV.Transforms
import qualified CV.ImageMath as IM
main = do
let s :: Image GrayScale D32
s = empty (300,300) <# circleOp 1 (150,150) 40 Filled
dtf = distanceTransform L2 M3 (unsafeImageTo8Bit s)
testCircle = (170,160,10)
(mx,my,r) = IM.maximalCoveringCircle dtf testCircle
saveImage "cover.png" $ montage (3,1) 2
[s
,(unsafeImageTo32F s) <# circleOp 0 (170,160) 10 (Stroked 2)
,empty (300,300) <# circleOp 1 (mx,my) (round r) (Stroked 2) ]