Problème d'affichage aléatoire
Salut,
J'ai un problème avec mon programme :mur: , lorsque je l'exécute des fois il m'affiche le résultat que je cherche et des fois il m'affiche une image noire (je fais du traitement d'images) :koi:
Le voici:
Code:
1 2 3
|
byte image[1000][1000];
byte Image[1000][1000]; |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
int tri[99999];
H=Image1->Picture->Bitmap->Height;
W=Image1->Picture->Bitmap->Width;
for(int x=0;x<W;x++)
for(int y=0;y<H;y++)
{
a=Image1->Picture->Bitmap->Canvas->Pixels[x][y];
b=a%256;
g=(a/256)%256;
r=(a/(256*256))%256;
Image[x][y]=(int)(r*0.299+g*0.587+b*0.114);
}
Form8->ShowModal();
float n,m;
n= StrToFloat(Form8->Edit1->Text);
int px, py;
double d;
int i,j,x,y,l;
int max;
for(x = 0; x < W; x++)
for(y = 0; y < H; y++)
{
int k=1;
for (i = -n; i <= +n; i++)
{
px = x + i;
for(j = -n; j <= +n; j++)
{
py = y + j;
if((px >= 0) && (px < W) && (py >= 0) && (py < H))
{
//d = hypot( i,j);
d=(x-px)*(x-px)+(y-py)*(y-py);
if (d <= n*n)
{
tri[k]=Image[px][py];
k=k+1;
}
}
}
}
max=tri[1];
for (l=2;l<=k;l++) {
if (max>tri[l])max=tri[l];
}
image[x][y]=max;
}
for(x=0;x<W;x++)
for(y=0;y<H;y++)
{
Image1->Canvas->Pixels[x][y]=(TColor)((int)(image[x][y]+256*image[x][y]+256*256*image[x][y]));
} |
Si vous avez une petite idée pensez à me laisser un message ;)
A+