Ciao a tutti.
è il mio primo post qua dentro e quindi mi presento.
Mi chiamo Andrea, studio alla specialistica di ingegneria biomedica al Politecnico di Milano e sono appassionato di informatica e programmazione.
Sto cercando di portare a termine un progetto molto ambizioso che va avanti ormai da metà novembre. Ho quasi finito ma mi manca solo un ultimo modulo da completare.
Il progetto consiste in un programma scritto in C per l'elaborazione di immagini bomediche: la parte di elaborazioni l'ho scritta testata e debuggata, ed è a prova di bomba.
Ora mi manca solo la parte di caricamento dell'immagine: sono tipo 3 settimane che cerco una soluzione.
Esistono librerie già fatte, tipo magick core, ma non riesco a capire come farle funzionare.
Dato che il mio programma è un prototipo, ho pensato di convertire l'immagine in una matrice e poi in un vettore usando Matlab, esportarlo come file di testo e infine leggere il file di testo... questo file contiene solamente int da 8 bit.
Ora ho un codice che funziona, ma legge u valori sbagliati:
#include<stdlib.h>
#include<stdio.h>
int main() {
FILE *fd;
char x;
int r;
int res;
int counter=0;
/* apre il file in lettura */
fd=fopen("/Users/andreacondorelli/Desktop/test.txt", "r");
if( fd==NULL ) {
perror("Errore in apertura del file");
exit(1);
}
/* ciclo di lettura */
while(1) {
res=fread(&r, sizeof(int), 1, fd);
if( res!=1 )
break;
if(r!=0)counter++;
printf("%d ", r);
}
printf("\n pixel letti %d",counter);
/* chiude il file */
fclose(fd);
return 0;
}
Con questo codice dovrebbe leggermi i vari interi che son stati salvati in un file di test .txt come valori separati da spazi, ma mi da valori "strani". VI copio un pezzettino dei risultati che vedo su console:
154481970 154481970 154154545 154415410 154679345 154350641 154678577 154743857 154351665 154284338 154284338 154284594 154284082 154744625 154417457 154480690 154612018 154415410 154548017 154613553 154155313 154351409 154745137 154482993 154611762 154614065 154416689 154745137 154679089 154548017 154481713 154744881 154677298 154220337 154285873 154286385 154155313 154611762 154546738 154613553 154613297 154416689 154613809 154351921 154220593 154678833 154153777 154416689 154155057 154153521 154679089 154744113 154679089 154285105 154417201 154678833 154154289 154611762 154744881 154153522 154415410 154611762 154743090 154744881 154679601 154153778 154415154 154744881 154744881 154548529 154219825 154285617 154546738
Il primo valore dovrebbe essere 255.
Ho provato a leggerlo come file di char, ma mi legge un numero alla volta e quindi
255 211 diventa 2 5 5 0 2 1 1 0
Ma a me servono gli interi, di numeri decimali me ne faccio poco o nulla.
Avete idee?
Io lavoro sul mac e con Xcode. Magari sbaglio a salvare il file, ma salvandolo come numeri divisi da spazi dovrebbe funzionare senza problemi....