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 : 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
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.