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