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->Cols
    In->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);


Anmelden zum Antworten