Salut,
J'ai un problème avec mon programme, 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)
![]()
Le voici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 byte image[1000][1000]; byte Image[1000][1000];Si vous avez une petite idée pensez à me laisser un message
Code : 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
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])); }![]()
A+







, 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)
Répondre avec citation



l'érosion de l'image se fait normalement mais elle se fait partiellement
, il y a une partie de l'image qui reste sans traitement et j'ignore pourquoi
tu es vraiment un génie

Partager