seuiller une image bmp en C
:salut:
Bonsoir à tous.
j'ai travaillé sur matlab et j'ai applique un seuillage sur differentes images mais maintenant je veux appliquer la seuillage sur une image BMP en C.
j'ai modifie ce code mais je veux que le resultat de mon images sera en noir et blanc.
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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#include <stdio.h>
#define PHOTO "./images/image22.bmp" // image BMP 24 bits a traiter
#define PHOTO_DEST "./images/image22test.bmp") //image BMP 24 bits seuillé
typedef struct Pixel
{
unsigned char r,g,b;
} Pixel;
void main()
{
FILE *fp,*fp2;
int a;
int i,j;
//ouverture des fichiers bmp
fp=fopen("./images/image22.bmp","rb");
fp2=fopen("./images/image22test.bmp","w+b");
// recopie de l'entete
for(i=0;i<255;i++)
{
for(j=0;j<255;j++)
{
fputc(fgetc(fp),fp2);
Pixel p;
p.r = i;
p.g = 0;
p.b = j;
}
}
i=0;
//traitement seuillage
while((a=fgetc(fp))!=EOF)
{
//i symbolise la couleur a traiter : 0=bleue, 1=vert, 2=rouge
//a est la valeur de la couleur a traiter :
//0x00 est absent de l'image
//0xff est omnipresent
if((a>=0x00)&&(i==2)&&(a<=0xff))
{
fputc(a,fp2);
}
else
{
fputc(0x00,fp2);
}
i++;
if(i==3)
{
i=0;
}
}
fcloseall();
} |
je ne sais pa qu'est ce qu'il fait ce code.
:help: