Max gradient magnitude in Canny's algorithm

asked 2018-12-03 06:38:38 -0600

Filippo9669 gravatar image

updated 2018-12-03 07:44:32 -0600

Hi there! I'm working on a way to adjust threshold levels in Canny's algorithm so as to get detected only a specified object - in my case a plane on the (quite) plane background. I've tried to use median value of threshold with standard deviation, what basicaly gave me an interval of (0.66, 1.33)*median threshold, but it does not work properly in a few cases, especially the one, most important for me - when edges in the picture are blured. Here is the example:

image description

Median threshold is ~158, so the min and max values should be 105 and 211 respectively. Unfortunately, they are not, due to the lower gradient between the plane and the background. There are the values I have to put to get what I want:

image description

What shall I do to improve this method? I was thinking about creating a searching algorithm, which would define min and max threshold on the basis of the amount of found edges - having found e.x. 3 edges it would obtain (min and max) values for the one that is "the biggest" (since the plane in 99% of instances would be the biggest object). But is it affordable? Since input and output both can be from 0 to 255, there are 65536 possibilities.

edit retag flag offensive close merge delete