bonjour,
je suis en train de faire un petit algorithme de détection de contour par filtre de SOBEL (basé sur l'algo de pseudocode ), mais j'ai pas trouvé de bon résultat.
Mon problème est : comment choisir le seuil pour que je puisse rendre tous les pixels qui forment le contour en blanc, les autres en noir .
Mon code est :
Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 BufferedImage im="L'image d'entrée" int [][]tab=new int [im.getHeight()][im.getWidth()]; for (int i=1;i<im.getHeight();i++) for (int j=1;j<im.getWidth();j++) { int v00=0, v01=0, v02=0, v10=0, v12=0, v20=0, v21=0, v22=0; int x0 = j-1, x1 = j, x2 = j+1; int y0 = i-1, y1 = i, y2 = i+1; if (x0<0) x0=0; if (y0<0) y0=0; if (x2>=im.getWidth()) x2=im.getWidth()-1; if (y2>=im.getHeight()) y2=im.getHeight()-1; v00=tab[x0][y0]; v10=tab[x1][y0]; v20=tab[x2][y0]; v01=tab[x0][y1]; v21=tab[x2][y1]; v02=tab[x0][y2]; v12=tab[x1][y2]; v22=tab[x2][y2]; double sx = ((v20+2*v21+v22)-(v00+2*v01+v02))/4; double sy = ((v02+2*v12+v22)-(v00+2*v10+v20))/4; if (sx+sy<0) tab[j][i]=0;else if (sx+sy>255)tab[j][i]=255;
Partager