#include<stdio.h>
#include<math.h>
#define MAX 256
void main()
{
float count[MAX]={0};
float h[3]={0};
float iq;
int yuv;
int size=256*256;
unsigned char *YUV_buffer_in;
YUV_buffer_in=new unsigned char[size];
FILE *fp;
fp=fopen("C://sjys//down.yuv","r");
if(fp==NULL)
{printf("File not open!/n");}
//fopen_s(&fp,"C://syp//down.yuv","r");
for(yuv=0;yuv<3;yuv++)
{
fread(YUV_buffer_in,sizeof(unsigned char),size,fp);
for(int i=0;i<size;i++)
{
int m=YUV_buffer_in[i];
count[m]++;
}
for(int i=0;i<MAX;i++)
{
count[i]=count[i]/size;
if(count[i]!=0)
{
iq=log(count[i])/log(2.0);
h[yuv]=h[yuv]-count[i]*iq;
}
}
}
fclose(fp);
printf("Y的熵为:%f\n",h[0]);
printf("U的熵为:%f\n",h[1]);
printf("V的熵为:%f\n",h[2]);
return ;
}