Problema con immagine e file testo in input!

di Anonimizzato8363 il
4 risposte
Ciao a tutti, come faccio a far passare un'immagine (file .raw) bidimensionale ad un programma c, e poi accedervi durante l'elaborazione? L'ho fatto nel seguente modo, ma mi da errore:
int w=atoi(argv[4]); //numero di colonne
int h=atoi(argv[5]); //numero di righe
int **imgin;

imgin= (int **)malloc(h*sizeof(int));
	for(i=0; i<h; i++){imgin[i]=(int *)malloc(w*sizeof(int));}

//riempio le matrici con i valori del file
	FILE *inputimg = fopen(argv[1],"rb");
    for (i=0;i<h;i++)
	{
		for (j=0;j<w;j++)
		{
			fread(&(imgin[i][j]),4,1,inputimg);
		}
	}
    fclose(inputimg);
Inoltre poi, come faccio ad accedere al generico valore imgin[j]? devo usare il puntatore?

Scusatemi ma sono alle prime armi, e mi hanno affidato questo lavoro di tesi!
Grazie a tutti!

4 Risposte

  • Il secondo parametro di fread è espresso come size in bytes. Perche leggi 4 byte alla volta?
  • Perchè i miei valori sono espressi in long integer
  • Ma li stai salvando come int. poi non controlli se fread ha letto effettivamente il valore o meno.
    Qui hai un errore:
    
    imgin= (int **)malloc(h*sizeof(int));
    dovrebbe essere:
    imgin= (int **)malloc(h*sizeof(int*));
    
  • Perche usi int e non unsigned char? hai 24 bit per il colore o intendi gestire il canale alfa?
    bhooo
Devi accedere o registrarti per scrivere nel forum
4 risposte