skip78 a écrit :
Salut à tous.
Je souhaiterais comprendre le principe de l'algorithme de canny, sachant que j'ai vu l'article wikipedia et que, pour l'instant, je ne sais pas ce qu'est un filtre matriciel donc ca ne me parle absolument pas Donc si quelqu'un s'y connait, ne serais ce qu'en filtres, je veut bien une explication succinte Merci, Skip
|
salut,
le filtrage matriciel est basée sur la convolution de ton image (une matrice L*H) par une autre matrice correspondant à ton filtre... voilà pour la definition.
si cela ne t'avance pas, le pixel de destination de coordonnées (x,y) apres filtrage vaut
dest
Code :
- float dest = 0.0f;
- for(int j = 0 ; j < h ; j++)
- {
- for(int i = 0 ; i < l ; i++)
- dest += s(x- l/2 - i, y - h/2 - j) * c(i, j);
- }
|
et il faut faire cela pour tous les pixels de ton image
où s(x,y) est la valeur de ton pixel aux coordonnées x, y dans l'image source de dimension l,h
et c(x,y) les coef de ton filtre de dimension n, m
et si c toujours pas clair... google est ton ami... filtrage image sobel...
le seul truc important est de faire attention aux dépassements (genre tu veux faire tenir tout cela dans un BYTE... ou autre) et bien sur aux effets de bords mais bon ca c'est evident
et si tu es TRES feignant, installe opencv
@pluche