TP4 Detection (Maarir)
TP4 Detection (Maarir)
TP4 Detection (Maarir)
Objectif
Objectif de ce TP est de faire comprendre les diffrentes mthodes de dtection des contours sur une image a laide des fonctions supportes par le logiciel Matlab ; INTRODUCTION Voici algorithme : [l,c]=size(BW); for i=2:l-1 for j=2:c-1 if BW(i,j)~=1 BW(i,j)=1; end end end
Parmi les choses les plus importants dans le traitement dimages est la dtection des contours ce dernier permet de reprer les diffrents objets qui constituent la scne de l'image. Il existe de nombreuses mthodes pour trouver les contours des objets, la plupart sont bases sur les drives premires et secondes de l'image. La dtection de contours permet de reprer dans les images les objets qui s'y trouvent avant d'appliquer le traitement uniquement sur ces objets. Les contours dans une image proviennent des : Discontinuits de la fonction de prfectance (texture, ombre), Discontinuits de profondeur (bords de l'objet),
I. DETECTION DE CONTOURS
resultat:
imshow(BW)
A. LA MTHODE SOBEL :
Dabord on va essayez dcrire un algorithme simple qui permet de dtecter les contours sur une image binaire ci-dessous : Dtection de contours des images binaires : Image binaire :
On va commencer par la mthode Sobel , Le filtre de Sobel est apprci pour sa simplicit et sa rapidit d'excution. Ces qualits posent des problmes lorsqu'il s'agit de traiter une image complexe. Elle permet d'liminer des faux contours. En considrant non seulement l'intensit du gradient mais aussi sa direction, il est possible d'liminer un pixel qui pointe vers deux pixels de valeur suprieure car ce n'est pas un maximum local.
I=imread(maison.jpg) ; % en niveau de gris
BW = EDGE(I,'sobel')
Prewitt
Rsultat :
Image originale Sobel
C. B.
LA METHODE PREWITT
LA METHODE
ROBERTS : quatre
Ce
:
Le dtecteur Prewitt est Calcul sur 9 points, ce filtre effectue une moyenne locale sur 3 points en mme temps que la drivation. Il est dfini par le double masque suivant (normalis par un facteur de 1/3) : La matrice qui correspond au filtrage horizontal, faisant ressortir essentiellement les contours verticaux, selon l'oprateur de Prewitt, s'crit hx = [1 0 1] (figure 1) tandis que la matrice verticale hy est sa transpose. Les deux convolutions avec le tableau de valeurs initiales crent deux tableaux Gx et Gy l'origine du tableau G sur lequel on peut localiser les maximums:
Ce filtre est une approche discrte de la drive de pas 1 d'une fonction: le gradient de cette fonction. Si I(x,y) reprsente un pixel dans une image, alors les amplitudes des gradients en x et en y peuvent s'crire respectivement: Gx = I(x+1,y) - I(x,y), Gy = I(x,y+1) - I(x,y). Cela revient a convoler l'image avec les deux filtres Rx = [-1 1] et Ry = transpose ([-1 1]). (Figure 2)
Voici la fonction ; I=imread(maison.jpg) ; % en niveau de gris
Original
D.
LA METODE DE
LAPLACIEN
En traitement dimage L'oprateur laplacien donne une approximation directe de la somme des drives secondes, ce qui peut tre obtenu avec une matrice qui est la somme des deux drives partielles principales. Il y a trois types de dtecteurs Laplaciens ; Cette mthode respecte mieux les contours ferms :
Canny est utilis en traitement d'images pour la dtection des contours, elle permet de rduire le bruit de l'image originale avant d'en dtecter les contours. Ceci permet d'liminer les pixels isols qui pourraient induire de fortes rponses lors du calcul du gradient, conduisant ainsi de faux positifs. L'algorithme de Canny ajoute un critre supplmentaire au mthode classique pour dfinir un dtecteur optimal, la non multiplicit des maxima locaux. Testons maintenant cette dtection de contours, qui est une amlioration de la mthode de Sobel.
I=imread(maison.jpg) ; % en niveau de gris
Original
Canny
Carr
Octogonal
Hexagonal
Voici les rsultats obtenus pour les 5 mthodes de dtections des contours :
Comparaison des rsultats Dapres ces resultat on voit que cest la mthode de Canny qui permet de dtecter les contours avec le plus de dtails, les contours sont ici beaucoup plus nets Les mthodes de Sobel et Prewitt rendent un rsultat quasi semblable. Notons que la mthode de Canny est une amlioration de la mthode de Sobel. Les mthodes de Prewitt et Roberts donnent des contours discontinus peu exploitables car perdant partiellement la symtrie de l'image.
La figure ci-dessous prsente la combinaison des dtecteurs dj tests classes dune manire croissante
Sob+Pre Pre+Rob
Sob+Rob
Sob+Lap
Pre+Lap
Rob+Lap
II LA TRANSFORM DE HOUGH Pour dtecter les droites qui existe dans notre image on va utiliser la mthode de dtection des contours Canny et la transforme de Haugh, voici lalgorithme :
maison= imread('maison.jpg'); I = rgb2gray(maison); % niveau gris BW = edge(I,'canny'); % extraction des contours [H,T,R] = hough(BW,'RhoResolution',0.5,'Theta',-90:0.5:89.5); % Afficher image originale figure; subplot(2,1,1); imshow(maison); title('Original'); % display the hough matrix subplot(2,1,2); imshow(imadjust(mat2gray(H)),'XData',T,'YData',R,... 'InitialMagnification','fit'); title('II. La transformer de Haugh'); xlabel('\theta'), ylabel('\rho'); axis on, axis normal, hold on; colormap(hot);
Conclusion DANS ce TP, nous avons compar diffrentes mthodes de dtection de contours, a savoir Sobel, Prewitt, Roberts, Laplacien et Canny Le but de la dtection de contours est de chercher les pixels dune images qui correspondent un changement de lintensit lumineuse nous avons obtenu comme rsultat que la mthode Canny est la plus performante .et puis nous avons appliqu la transforme de Hough pour extraire les droits qui existe dans limage utilise et tracer la courbe des droits .