How can I colour my sketch using pen tool within t

2020-03-05 06:34发布

问题:

I am using GPUImage to detect the edge and applying GPUImageSobelEdgeDetectionFilter or GPUImageCannyEdgeDetectionFilter . Now my requirement is:

How can I take the coordinate points from that image so that I can make drawing within the closed boundaries.

Detect Edges from Image

   var image_p: GPUImagePicture?
   var filterImageview: UIImageView! // to display images

   let inputImage = filterImageview.image
    if let anImage = inputImage {
        image_p = GPUImagePicture(image: anImage)
    }

    let filter1 = GPUImageSobelEdgeDetectionFilter()//GPUImageCannyEdgeDetectionFilter()
    image_p?.addTarget(filter1)
    image_p?.processImage()

    let outputImage = filter1.imageFromCurrentlyProcessedOutput()
    filterImageview.image = outputImage

Now I am trying to detect the points so that i can create a separate layer for drawing within the closed boundaries..

  • For example 1. orgnl image 2. filtered sobelEdgeDetection/GPUImageCannyEdgeDetectionFilter image

    1. 2.

    I am drawing color using pen tool. If I am coloring inside the circle while coloring, it should not come out of the circle boundary until I choose another touchpoints..

    Based on touch point I want to color it within closed boundaries.

I also have tried Floodfill algorithm. It gives the different output. Not exactly my desired output.

How could I apply it?

回答1:

Hey Pradip you are looking for floodfill algorithm to be exact it will solve your problem.

Floodfill Algorithm Brief Explanation -

The flood-fill algorithm takes three parameters: a start node, a target color, and a replacement color. The algorithm looks for all nodes in the array that are connected to the start node by a path of the target color and changes them to the replacement color.

Links for you R&D and also a demo in obejective-c.

  1. https://ilearnios.wordpress.com/2013/07/18/scanline-flood-fill-algorithm-with-or-without-tolerance-in-objective-c/
  2. https://lodev.org/cgtutor/floodfill.html
  3. https://github.com/Chintan-Dave/UIImageScanlineFloodfill (Great demo courtesy of Chintan-Dave)

    I have also used floodfill on my project just to remove background colors and found above links veryusefull. Hope it Helps