#include "stdio.h"
#include "stdlib.h"
#include "windows.h"
void main() {
int i,j;
int Hist[256]; //히스토그램 배열.
int Mvalue = 0; //히스토그램 최대값 변수.
unsigned char oimage[256][256];
unsigned char dimage[256][256];
FILE *inimage, *outimage;
inimage=fopen("lena256.bmp", "rb");
if(inimage==NULL) {
printf("파일을 찾을 수 없습니다.\n");
return ;
}
fread(oimage, sizeof(char), 256*256, inimage);
fclose(inimage);
//Hist 0으로 초기화.
memset(Hist,0,sizeof(int)*256);
//히스토그램 계산.
for(i=0; i<256; i++) {
for(j=0; j<256; j++) {
Hist[oimage[i][j]]++; //현재 픽셀값을 히스토그램 배열에 저장.
if(Mvalue<Hist[oimage[i][j]]) //히스토그램 최대값 계산.
Mvalue=Hist[oimage[i][j]];
}
}
//화면 전체를 255로 만듬.
memset(dimage, 255, sizeof(unsigned char)*256*256);
for(i=0; i<256; i++) {
int Value=Hist[i]*255/Mvalue;//히스토그램 최대값이 255가 되도록 그림.
for(j=0; j<Value; j++) {
dimage[255-i][j]=255;//히스토그램 크기만큼 검은색으로 출력.
}
}
outimage=fopen("lenahh.bmp", "wb");
fwrite(oimage, sizeof(char), 256*256, outimage);
fclose(outimage);
}
이렇게 해서 실행했는데 히스토그램이고 뭐고 생성된 파일도 않열리는데 왜그럴까요
몰라요