next up previous contents index
Next: harris Up: Reference Previous: align_mdl   Contents   Index

canny

$ \bigcirc$Name


canny Canny-Deriche's Edge Detector




$ \bigcirc$Command Synopsis


canny [-a alpha] IN OUT



-a alpha : Width of the impulse response, default 1

IN : input fimage

OUT : output fimage




$ \bigcirc$Function Summary


Fimage canny (alpha , IN , OUT )

float *alpha ;

Fimage IN , OUT ;




$ \bigcirc$Description


This method is an approach of edge extraction preceded by an optimisation of criteria keeping in mind a pre-defined model of the edge to detect. The approach introduced by Deriche consists in a research of the optimal operator of the Canny's filter [Can86] under a infinite impusionnal response filter (RII) [Der87].


Canny's filter :

Considering I(x) a monodimensionnal signal representing a jump of amplitude A, lost in a Gaussian noise n(x) with a null average and variance n02. Let $ \Theta$(x0), the output at the point x0 of the convolution of the signal I(x) whit a detection operater f (x):

$\displaystyle \Theta$(x0) = $\displaystyle \int_{{-\infty}}^{{+\infty}}$I(x)f (x0 - x) dx

So the issue is to find f (x) where $ \Theta$(x0) is maximum under the following constraints:

The Canny's method consists in combinig with those three conditions in order to finf f (x) which maximises $ \sum$.$ \Lambda$ under the third constraint that the criteria is fixed to constant k. This leads to find the solution of the following differentail center :

2f (x) - 2$\displaystyle \lambda_{{1}}^{}$f''(x) + 2$\displaystyle \lambda_{{2}}^{}$f''''(x) + $\displaystyle \lambda_{{3}}^{}$ = 0

which accepts the general solution :

f (x) = a1e$\scriptstyle \alpha$xsin($\displaystyle \omega$x) + a2e$\scriptstyle \alpha$xcos($\displaystyle \omega$x) + a3e-$\scriptstyle \alpha$xsin($\displaystyle \omega$x) + a4e-$\scriptstyle \alpha$xcos($\displaystyle \omega$x) + C

Seeking for the operator f (x) under the form of a finite impulsionnal response (RIF) defined on the interval [- W, + W] and having a slope S at the origin, Canny has imposed the following limit conditions:

f (0) = 0   f (W) = 0   f'(0) = S   f'(W) = 0

Those four limit conditions allow us to determine the coefficients a1 to a4. f (x) beeing odd, the solution can be extend for x negative with f (x) = - f (- x).


Deriche's filter :

The Deriche's approach consists in the research of the optimal operator under the form of a RII filter. This approach leads to the same Canny's differential center, but limit conditions are as follow :

f (0) = 0   f (+ $\displaystyle \infty$) = 0   f'(0) = S   f'(+ $\displaystyle \infty$) = 0

It results as solution the following operator:

f (x) = - c.e-$\scriptstyle \alpha$| x|sin($\displaystyle \omega$x)

Now we introduce the procedure that summarize the Deriche's operator in two dimensions. We create in the x (resp y) direction a 2D mask resulted from the product of a lined up dectector in x (resp y) with a projection operator parallel to the direction y (resp x). We have a recursive implementation if we choose the smoothing operator f (x). We obtain the following centers:

X(m, n) = $\displaystyle {\frac{{[-c.e^{-\alpha .\vert m\vert}.sin\omega .m].[k.(\alpha .s...
... \omega .\vert n\vert).e^{-\alpha .\vert n\vert}]}}{{\alpha ^{2}+\omega ^{2}}}}$

Y(m, n) = $\displaystyle {\frac{{[-c.e^{-\alpha .\vert n\vert}.sin \omega .n].[k.(\alpha ....
...s\omega .\vert m\vert).e^{-\alpha .\vert m\vert}]}}{{\alpha ^{2}+\omega ^{2}}}}$

The variables k and c are fixed by the normalization constraint, so we have:

c = $\displaystyle {\frac{{[1-e^{-\alpha }]^{2}}}{{e^{-\alpha } }}}$

k = $\displaystyle {\frac{{[1-e^{-\alpha }]^{2}.\alpha ^{2}}}{{1+\alpha .e^{-\alpha}-e^{-2.\alpha}}}}$

In the realization of a RII filter, the size of both masks X(m, n) and Y(m, n) depends of $ \alpha$. After the image is convolued with the two masks, we obtain two image r(m, n) and s(m, n). The direction of the edge $ \alpha$(m, n) and the amplitude A(m, n) are estimated in fonction of r(m, n) and s(m, n) as follow :

A(m, n) = (r(m, n)2 + s(m, n)2)$\scriptstyle {\frac{{1}}{{2}}}$

$\displaystyle \alpha$(m, n) = arctg$\displaystyle {\frac{{r(m,n)}}{{s(m,n)}}}$

The suppression of the non local maxima of A(m, n) in the exact direction of gradient $ \alpha$(m, n) is then realized. So an linear interpolation is made on the gradient. The extaction of local maxima is done in a neighbourhood of 3*3 of the gradient's norm image. The aim is to extract all the pixels coming in the form of a local maxima in the gradient's direction. We use the images coming from the precedent steps in order to obtain an approxiamtion of the gradient's direction.




$ \bigcirc$Version 1.1


Last Modification date : Thu Nov 29 20:23:56 2001


$ \bigcirc$Author


Yann Guyonvarc'h






next up previous contents index
Next: harris Up: Reference Previous: align_mdl   Contents   Index
mw 2004-05-05