Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    elaborare un immagine

    Ciao a tutti,
    sono nuovo in questo forum, e sono un novizio anche in quanto a programmazione.
    Per un lavoro di tesi devo poter elaborare un immagine.
    Devo leggerla, esprimerne il contenuto RGB e selezionare una parte di essa.
    Vi prego aiutatemi!
    Nel file allegato c'è un immagine per darvi un pò un'idea.
    Per ora sono riuscito a leggere l'immagine con il codice sotto allegato.
    Come faccio ad accedere al contenuto dei pixel?
    Aspetto una vostra risposta grazie.
    Nicpacino
    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
    //creo uno stream per leggere le immagini da file
    FILE *in, *out;
    int i=0, j=0;

    out = fopen("./origine.bmp", "rb");
    in = fopen("./eseguibile.cpp", "wb");

    //creo/scrivo il file eseguibile.cpp
    fprintf(in, "#include <stdio.h>\n");
    fprintf(in, "#include <stdlib.h>\n\n");
    fprintf(in, "int main(){\n");
    fprintf(in, "int i;\n");
    fprintf(in, "FILE *p;\n");
    fprintf(in, "int bmp[]={");

    //creo l'array contenente il codice decimale della bitmap di origine
    while(!feof(out))
    {
    //leggo i dati dal file costituente l'immagine dove &i è l'indirizzo su cui srcivo
    fread(&i, sizeof(char), 1, out);
    //stampo sullo stream costituito da in i valori letti che sono decimali
    fprintf(in, "%d, ", i);
    }
    //muovo il puntatore al file eseguibile "in" a partire dalla fine del file
    fseek(in, -2, SEEK_END);
    printf("%d\n",*in);
    fprintf(in, "};\n");

    //continuo a scrivere il listato per il secondo eseguibile
    fprintf(in, "p = fopen(\"./bitmap.bmp\", \"wb\");\n");
    fprintf(in, "for(i=0; i<%d; i++) fprintf(p, \"%%c\", bmp[i]);\n", j);
    fprintf(in, "fclose(p);\n");
    fprintf(in, "printf(\"Bitmap creata\\n\");\n");
    fprintf(in, "system(\"start bitmap.bmp\");\n");
    fprintf(in, "system(\"pause\");\n");
    fprintf(in, "return 0;\n");
    fprintf(in, "}\n");

    // ora chiudo la routine in questo file "caricatore"
    fclose(in);
    fclose(out);
    system("start origine.bmp");
    system("PAUSE");
    return 0;
    }

  2. #2
    Devi capire come funziona il formato bitmap... ti ho messo un paio di link scelti casualmente cercando struttura bitmap su google.

    http://www.fortunecity.com/skyscrape.../bmpffrmt.html
    http://www.di.uniba.it/~ig/KubriK/BmpFormat.html

    Ciao Gnix
    http://www.ptrace.net

  3. #3
    grazie per il consiglio, ora gli do un occhiata.
    Nic

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.