Merhaba arkadaşlar hocamızın verdiği bir ödevde bir dosyadan çekilen resmin histogramını oluşturmamız isteniyor. Yardımcı olabilecek varsa sevinirim.

Örnek bir kodlama.
#include<stdio.h>
int *xsize, *ysize;

int get_image(char *filename, int im[][500], int *size, int *ysize)
{
	FILE *infile;
	int i, j;
	if ((infile= fopen (filename, "r"))!=NULL)			
	{

		fscanf(infile, "%d %d", *xsize, *ysize);
		for (i = 0; i<*ysize; i++)
			for (j = 0; j<*xsize;j++)
				fscanf(infile, "%d", &im[i][j]);
		return 1;
	}

	else
		return 0;
}
/* Histogramı bulma işlemleri. Dosyanın j uzantısı maksimum 500 karater olabilir. Histogram içeriğiyse 256
karakter*/
void find_histogram(int image[][500], int *xsize, int *ysize, int hist[256])
{
	int i, j;
	for (i = 0;i<256;hist[i++]=0);/i yi 0 dan başlat. 256ya kadar saydır. Ardından histi 1 arttır./
	for (i = 0;i<ysize;i++)/*i yi y ye kadar 1 arttır./
		for (j = 0;j<xsize;j++)/*j yi x e kadar 1 arttır./

			hist[image[i][j]++];/Histogram içerisinde image i 1 arttır./

} 

void print_histogram(int hist[256])/histogram yazdırılacak./
{
	int i;
	for (i=0;i<256;i++)/i yi 0 olarak başlat ve 256 ya kadar dönder./
		printf("%d\n", hist[i]);/histogramın içerisine i yi double olarak yazdır ve alt satıra geç/
}

void main(void)/program buradan itibaren çalışmaya başlar./
{
	char filename[100];
	int image[500][500], histogram[256], xsize, ysize, file_ok;
	printf("Enter the image file name:");
	scanf("%s", filename);
	file_ok = get_image(filename, image, &xsize, &ysize);
	if (file_ok == 0)
	{
		printf("File error.\n");
	}
	else {
		find_histogram(image, xsize, ysize, histogram);
		print_histogram(histogram);
	}

}