#include #include int main(){ FILE *fichier = NULL; FILE *fichier2 = NULL; //FILE *fichier3= NULL; int a,b,c,d,e,f,g,h,i,j,k,l,m,o,p,n,z; int som,som2; int pix[25344]; int pixnew[25344]; int tab[10][25344]; int tabFond[25344]; int tabcomp[25344]; int epsi; int diff; fichier = fopen("//home//richard//projet//foreman.yuv","r"); fichier2 = fopen("//home//richard//projet//foreman2.yuv","w+"); //fichier3 = fopen("//home//richard//foreman3.yuv","w+"); if(fichier!=NULL) { // on lit sur 10 images on a n: nb d'images puis N qui est le nombre de pixel for(z=0;z<10;z++){ //lecture et ecriture des fichiers Y for(i=0;i<176;i++){ //Boucle de lecture en longueur for(j=0;j<144;j++){ //Boucle de lecture en largeur fread(&pix,1,1,fichier); tab[z][i*j]=*pix; printf("la valeur à l'image %d, pixel: avec i=%d et j=%d est: %d \n",z,i,j,tab[z][i*j]); } } //lecture des fichiers U for(k=0;k<88;k++){ for(l=0;l<72;l++){ fread(&pix,1,1,fichier); } } //lecture des fichiers V for(m=0;m<88;m++){ for(n=0;n<72;n++){ fread(&pix,1,1,fichier); } } } //Moyennage for(c=0;c<176;c++){ for(d=0;d<144;d++){ som=0; for(g=0;g<10;g++){ som+=tab[g][c*d]; } tabFond[c*d]=som/10; //printf("la valeur moyenne avec pixel: avec c=%d et d=%d est: %d \n",c,d,tabFond[c*d]); } } // 2eme partie // on lit sur 10 images for(a=0;a<10;a++){ //lecture des fichiers Y for(b=0;b<176;b++){ for(e=0;e<144;e++){ *pixnew=tabFond[b*e]; fwrite(&pixnew,1,1,fichier2); //printf("la valeur à l'image %d, pixel: avec b=%d et e=%d est: %d \n",a+1,b,e,tabFond[b*e]); } } //lecture des fichiers U for(f=0;f<88;f++){ for(h=0;h<72;h++){ fwrite(&pixnew,1,1,fichier2); } } //lecture des fichiers V for(o=0;o<88;o++){ for(p=0;p<72;p++){ fwrite(&pixnew,1,1,fichier2); } } } //Moyennage for(c=0;c<176;c++){ for(d=0;d<144;d++){ som2=0; for(g=0;g<10;g++){ som2+=tab[g][c*d]; } tabcomp[c*d]=som2/10; //printf("la valeur moyenne avec pixel: avec c=%d et d=%d est: %d \n",c,d,tabcomp[c*d]); } } /* //on fait la difference printf("Choisir l'intervalle epsilon:"); fflush(stdout); scanf("%d",&epsi); fflush(stdin); for(z=0;z<10;z++){ for(b=0;b<176;b++){ for(e=0;e<144;e++){ diff=(int)tab[z][i*j]-(int)tabcomp[b*e]; if(diffepsi){ //printf("Image %d , le pixel b=%d, e=%d est en mouvement\n",z+1,b,e); } } } } } */ fclose(fichier); fclose(fichier2); } else{ //message d'erreur printf("Impossible d'ouvrir le fichier"); } return 0; }