需要图形接口。
可以用vc/vs的自带图形烂滑库
也可嫌悉以用tc2.0的graphic接口。
或者使用第三方库。
初始化图形接口后
在屏幕上打随机的彩色点,芹历乎实现下降效果即可。
方法一:
#include<stdio.h>#include<stdlib.h>
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=0i<(256*256)i++) //统计灰度值
{
value[pData[i]]++
}
printf("灰度值\t\t大小") //
printf("\n")
fp=fopen("result.txt","wb")
fprintf(fp,"灰度值\t\t大小\r\n")//注意\r\n 否则不能换行!
for(j=0j<256j++) //将结果输出到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<stdio.h>#include<stdlib.h>
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=0i<(256*256)i++) //统计灰度值
{
value[pData[i]]++
}
return 0 //
}
int fwrite(unsigned char *pData)
{
FILE *fp
fp=fopen("result.txt","wb")
fprintf(fp,"灰度值\t\t大小\r\n")
for(int j=0j<256j++) //将结果输出到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])
}
delete[] pData//删除空间
fclose(fp) //关闭txt文件
return value[256] //
}
int main(unsigned char *pData)
{
pData=new unsigned char[256*256] //在主函数里声明新空间
fread(pData) //传数组地址
fchuli(pData)
fwrite(pData)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)