Grauwert ins Binär ??
-
Hallo an allen,erstmals
Ic´h habe einen Code der ein Grauwert Bild in binäres umwandelt,(der Schwellwert dient dazu um zu sehen ab welchen Wert die beste Ergebnisse bekommen kann),aber das Ergebnisbile(Out) ist fast unverändert!Kann mir jemand sagen wo der Fehler liegt?void wandleInBinaer(struct Image *In,struct Image *Out)
{
int i,j;if(!(Out->Data=(unsigned char*)calloc(Out->Rows,Out->Cols)))
{
perror("malloc");
exit(1);
}
for(i=0; i<In->Cols; ++i)
for(j=0; j<In->Rows; ++j)
{
if ( *(In->Data) <127) //<---Schwellwert1 127|Wert1|Wert2|...
*(Out->Data) =0;
else
*(Out->Data)=255;}
memcpy(Out->Data,In->Data,In->Cols*In->Rows);}
Mit Struktur
struct Image
{
//# of Rows in Image = dx
int Rows;
// # of columns in image =dy
int Cols;
// Pointer to image data
unsigned char *Data;
//type of image
unsigned char Type;
};Danke kilomat
-
Hat sich erledigt:Fuer Leute die sich vieleicht interessieren der korrekte Codeist so:
void wandleInBinaer(struct Image *In,struct Image *Out)
{
int i,j;/*if(!(Out->Data=(unsigned char*)calloc(Out->Rows,Out->Cols)))
{
perror("malloc");
exit(1);
}/
for(i=0; i<In->ColsIn->Rows; ++i){
if (In->Data[i] <127 )
In->Data[i] =0;
else
In->Data[i]=255;}
memcpy(Out->Data,In->Data,In->Cols*In->Rows);