Page 1 of 1

Canny Edge Detecton?

Posted: 2009-05-13T14:27:28-07:00
by tonybarry
Hello,

I am looking for a Canny edge detector, and note there is an "edge" function available in ImageMagick. Is it possible to know if the edge function uses Canny's method? If not Canny's method, is it possible to know the nature of the edge function (that is, its general class of operation)?

Many thanks in advance!

Regards,
Tony Barry
Sydney, Australia

Re: Canny Edge Detecton?

Posted: 2009-05-13T14:34:00-07:00
by fmw42
As best as I can determine, it is simply a high pass filter generated by subtracting a low pass gaussian blur from the image. It is not a Canny edge detector!

There are many references to Canny Edge detection:
http://www.pages.drexel.edu/~weg22/can_tut.html
http://en.wikipedia.org/wiki/Canny_edge_detector

The IM edge function is not that sophisticated.

Re: Canny Edge Detecton?

Posted: 2009-05-13T14:37:01-07:00
by tonybarry
Hello fmw42,

Many thanks for the quick response!

Regards,
Tony Barry

Re: Canny Edge Detecton?

Posted: 2009-05-13T17:54:45-07:00
by anthony
none of the more advanced edge detectors have been implemented in IM. Mostly due to lack of interest by a programmer with the knowledge needed.

that is not to say we don't want it, far from it. We just need more programmers to the cause.

Re: Canny Edge Detecton?

Posted: 2009-05-14T03:42:41-07:00
by tonybarry
Hello Anthony,

I may not be a good enough programmer for ImageMagick! I do most of my coding in REAlbasic for the high level stuff, and C (Arduino) or AVR assembler for the low level stuff. That gets me by. Objective C for the Mac (Xcode) is too full of twenty-syllable function calls for me to remember them! I really only write code for Mac or embedded these days; my VB days are over I think. And I never did much with Borland C beyond what I had to for TAFE. The good old days of DOS. I wrote my final project in TASM on a 386.

Getting old.

Regards,
Tony Barry

Re: Canny Edge Detecton?

Posted: 2009-05-14T15:00:54-07:00
by anthony
The IM core library is not dependant on mac functions only standard C functions.

When I create a new function I don't write it from scratch either, but find and copy an existing function and modify it to suit my needs.

For tracing though operations do a search on wand/mogify.c for the command line option, and then look for the called function in the magick/ sub-directory, first in the ".h" file then the corresponding ".c" file.

I do this all the time, and the fact that almost all operations have a corresponding command line option makes this the simplist way to see how something is done, and how you can add new functions.

The only other part of the command line API thatmay be needed is in magick/options.c whcih contain the tables for converting strings into the appropriate constants for 'methods' and 'settings'. The "-list" option was expanded to list those tables to make it more usable to users wanting to know what is implemented in the IM currently installed.