c语言如何读取图像的大小,用c语言读取固定大小的raw格式图像并统计灰度值

目的:

1.读取【256*256】大小的raw格式图像

2.统计灰度值

3.将结果写回result.txt

代码:

方法一

#include

#include

void main()

{

int i,j;

FILE *fp;  //指向文件的指针

fp=fopen("Lena.raw","rb");  //打开文件。注意raw格式图像要以只读二进制流的形式打开

if(!fp)

{

printf("ERROR!\n");

}

unsigned char *pData=new unsigned char[256*256]; //注意:raw图像用无符号char型读入

fread(pData,sizeof(unsigned char),(256*256),fp);  //fread具体用法见msdn

fclose(fp); //取消fp指针指向

int value[256]={0}; //声明并初始化存灰度值的数组

for(i=0;i

{

value[pData[i]]++;

}

printf("灰度值\t\t大小"); //

printf("\n");

fp=fopen("result.txt","wb");

fprintf(fp,"灰度值\t\t大小\r\n");//注意\r\n 否则不能换行!

for(j=0;j<256;j++)  //将结果输出到txt中

{

printf("%d\t\t%d\n",j,value[j]);

// fwrite(value,sizeof(int),256,fp);

fprintf(fp,"%d\t\t%d\r\n",j,value[j]);  //注意\r\n 否则不能换行

}

delete[] pData;//删除空间

fclose(fp); //关闭txt文件

}

方法二:

#include #include int value[256]={0}; int fread(unsigned char *pData)  //把声明的那个数组空间指针作为参数来回传 { FILE *fp; fp=fopen("Lena.raw","rb"); if(!fp) { printf("Read ERROR!\n"); } fread(pData,sizeof(unsigned char),(256*256),fp); fclose(fp); return 0; // } int fchuli(unsigned char *pData) {   for(int i=0;i

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值