Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

64 lines (48 sloc) 1.984 kb
module CV.Marking where
import CV.Image as Image
import CV.Morphology
import CV.Edges as Edges
import CV.ImageOp as ImageOp
import CV.Sampling
import qualified CV.ImageMath as IM
import CV.Drawing
import CV.ColourUtils
import Foreign.C.Types
import CV.ImageMathOp
import Utils.Rectangle
-- For easy marking of detected flaws
boxFlaws i = Edges.laplace Edges.l1 $ dilate basicSE 5 (i)
highLightFlaws image flaws = displayFlaws
((0.2 |* flaws) #+ (0.8 |* image)) flaws
displayFlaws image = IM.sub image . IM.mulS 0.6 . boxFlaws
displayLargeFlaws image = IM.sub image . IM.mulS 0.6 . Edges.laplace l1
type Marker c d = (Int,Int) -> (Int,Int)
-> ImageOperation c d
condMarker condition m size t place = if condition t
then m size t place
else nonOp
getCoordsForMarkedTiles tileSize overlap marks image =
map fst $ filter (snd) $ zip coords marks
where
coords = getOverlappedTileCoords tileSize overlap image
cuteDot (x,y) =
circleOp 1
(x,y) (w*2) (Stroked 1) ImageOp.#> circleOp 0 (x,y) (w*2-1) (Stroked 1)
where w = 2
cuteCircle1 (x,y) =
circleOp 1
(x+w,y+w) (w*2) (Stroked 1) ImageOp.#> circleOp 0 (x+w,y+w) (w*2-1) (Stroked 1)
where w = 6
cuteRect (w,h) (x,y) =
rectOp 0.1 1 (Rectangle x y (x+w) (y+h)) ImageOp.#>
rectOp 1 1 (Rectangle (x+1) (y+1) (x+w-1) (y+h-1))
cuteCircle :: Marker GrayScale D32
cuteCircle (tw,th) (x,y) =
(circleOp 1
(x+tw`div`2,y+tw`div`2) (w) (Stroked 1) ) ImageOp.#> circleOp 0 (x+tw`div`2,y+tw`div`2) (w-1) (Stroked 1)
where w = tw`div`2
markTiles image size overlap marker lst = marked
where
tileCoords = getOverlappedTileCoords size overlap image
markers = map (\(t,c) -> marker size t c) $ zip lst tileCoords
marked = unsafeOperate (foldl (ImageOp.#>) nonOp markers) image
Jump to Line
Something went wrong with that request. Please try again.