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;
}