Bonjour, j'aimerais qu'on me corrige mon programme SVP, concernant un sujet de ratrapages que j'ai a faire.
voici l'adresse où trouver le sujet: http://annexe.esiea.fr/reexamens/reexamens2004.html
vous allez dans 2A puis projet.
Je voudrais savoir si mon algo est bon d'abord, puis si j'ai fait des erreurs dans l'utilisation des pointeurs, merci.
Voici mon code:
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#define MAX_TAILLE 2048
typedef struct
{
short couleur[3];
}Pixel;
typedef struct
{
int nb_lignes,nb_colonnes;
Pixel tab[MAX_TAILLE][MAX_TAILLE];
}Image;
Image *CalculerDifferences(Image *source)
{
int i,j;
Image *P= source;
Image *P2;
P2=P;
for(j=1;j< P->nb_lignes;j++)
{
for(i=1;i< P->nb_colonnes; i++)
{
P2->tab[i][j].couleur[0]= P->tab[i][j].couleur[0]- ((P->tab[i-1][j].couleur[0]+ P->tab[i-1][j-1].couleur[0] + P->tab[i][j-1].couleur[0])/3);
P2->tab[i][j].couleur[1]= P->tab[i][j].couleur[1]- ((P->tab[i-1][j].couleur[1]+ P->tab[i-1][j-1].couleur[1] + P->tab[i][j-1].couleur[1])/3);
P2->tab[i][j].couleur[2]= P->tab[i][j].couleur[2]- ((P->tab[i-1][j].couleur[2]+ P->tab[i-1][j-1].couleur[2] + P->tab[i][j-1].couleur[2])/3);
}
i=1;
}
return P2;
}
void Negliger(Image *diff, int alpha)
{
Image *P2;
P2=diff;
int r,v,b,R,V,B,Alpha,S,i,j;
for(j=1;j<P2->nb_lignes;j++)
{
for(i=1 ;i< P2->nb_colonnes;i++)
{
r= P2->tab[i][j].couleur[0];
v= P2->tab[i][j].couleur[1];
b= P2->tab[i][j].couleur[2];
R=r*r;
V=v*v;
B=b*b;
Alpha= alpha*alpha;
S=R+V+B;
if(S<=Alpha)
{
P2->tab[i][j].couleur[0]=0;
P2->tab[i][j].couleur[1]=0;
P2->tab[i][j].couleur[2]=0;
}
}
i=1;
}
}
void EcrireFichier(char *nom_fichier, Image *diff)
{
int i=0,j=0,a=1,b=0,n=0;
Image *P2;
P2=diff;
char tmp[MAX_TAILLE][MAX_TAILLE];
nom_fichier= *tmp;
while(j<P2->nb_lignes)
{
while(i<P2->nb_colonnes)
{
if(P2->tab[i][j].couleur[0]!=0 || P2->tab[i][j].couleur[0]!=0 || P2->tab[i][j].couleur[0]!=0 )
{
n++;
tmp[a][b]=i;
tmp[a+1][b]=P2->tab[i][j].couleur[0];
tmp[a+2][b]=P2->tab[i][j].couleur[1];
tmp[a+3][b]=P2->tab[i][j].couleur[2];
a+=4;
}
i++;
}
tmp[0][b]=n;
b++;
j++;
i=0;
}
}