YuV熵的计算

加粗样式@TOC

#include<stdio.h>

#include<math.h>

#define N 256

void main()

{

float count[N]={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://data//down.yuv”,“r”);

if(fp==NULL)

{printf(“File not open!/n”);}

//fopen_s(&fp,“C://data//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<N;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 ;

}

————————————————
版权声明:本文为优快云博主「weixin_52189060」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/weixin_52189060/article/details/114518280

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值