Ask Your Question
5

Help with: Active Canny: Edge Detection and Recovery with Open Active Contour Models. Confused and stuck

asked 2017-12-05 03:56:50 -0600

Santhosh1 gravatar image

updated 2018-01-14 22:24:10 -0600

This looks to be a promising article for the implementation of joining the broken edges of an image.

Active Canny: Edge Detection and Recovery with Open Active Contour Models

image description

Major steps.

  1. Find Gradient Magnitude from Color or Grayscale image.
  2. Non Maxima Suppression of the gradient Magnitude.
  3. Similar to Canny Higher Threshold and Lower Threshold, Select pixels with higher threshold as seed pixels.
  4. From seed pixels, initiate snakelets in decreasing order of gradient magnitude.
  5. Two unidirectional snakelets are initiated from a seed and they grow in opposite directions.
  6. The initial snakelets grow to a specific initial length, e.g., 10 − 15. The GVF is computer over the nonmaximum suppressed gradient magnitude image with 3 − 5 initial iterations
  7. If a seed pixel is already covered by a previous snakelet, it is discarded. This way, we obtain a set of short snakelets over the strong gradients.
  8. The snakelets grow and split recursively until they reach an existing snakelet or they cannot grow anymore (gradient lower than TL)
  9. When a snakelet reaches maximum growing length, e.g., 40, it stops growing; a new short snakelet is initiated at the end of it to continue growing.

This is what the article says at the end. The growing force is proportional to the gradient magnitude at the end of the snakelet. This recursive growing of snakelets is analogous to the hysteresis thresholding and edge linking of Canny edge detection. However, a snakelet grows in one direction, while edge pixels are linked in all directions in Canny.

Steps 1,2,3 are done.

Step 4 is something that is very confusing how do I initiate snakelets in decreasing order of gradient magnitude?

edit retag flag offensive close merge delete

Comments

Wonder why such a useful feature Active Contours was removed from OpenCV?

Santhosh1 gravatar imageSanthosh1 ( 2017-12-05 06:35:14 -0600 )edit

I had such hopes for OpenCV. When I check online for help, MatLab has active contours inbuilt in it. Hope one day this is powerful enough to replace MatLab.

Santhosh1 gravatar imageSanthosh1 ( 2017-12-05 08:21:33 -0600 )edit

An open source project like this depends on contributions. If you come up with a solution, so commit it through a PR!

StevenPuttemans gravatar imageStevenPuttemans ( 2017-12-06 04:38:42 -0600 )edit

1 answer

Sort by » oldest newest most voted
0

answered 2018-08-13 03:37:42 -0600

updated 2018-08-13 03:55:43 -0600

Actually, I have a big doubt about this atritcle. The Internal Energy give the force that perpendicular to the contour, so only the growing term has effect. And this term is suppressed or enhanced by other unrelated forces,the final result will be confusing.

One possible method might be: 1. Grow the ends of the contour by some pixels with the most gradient. 2. Run the ACM method to adjust the growed contour to the right place.

But still: 1.The growing direction and amount is hard to determine. If only grow by one pixel, after ACM, it might be growed by nothing. 2.It is very easy to grow the contour to the neighbor contour, but they should not be connected actually.

The growing force and growing dircetion of the method in the article is very unclear. if only simply make the growing fore proportional to the gradient magnitude, and add it to the ACM equation,the result is nothing growing. If it does growing ,it is the "luck" do its job.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2017-12-05 03:56:50 -0600

Seen: 2,489 times

Last updated: Aug 13 '18