c语言中怎么算图像数据量

Python015

c语言中怎么算图像数据量,第1张

对于图像来说,它所需要的数据量就是这幅图像所需要的存储空间大小。

有两种办法来计算:

实测法

使用与要求相近的实际图片,包括尺寸大小、色彩、数据格式。来统计一下实际的存储空间的要求。图片若是非压缩格式,那么这个尺寸是精确的,如果是压缩格式,由于压缩比和图案相关,因此需要预留一部分浮动空间。

估算法

首先计算每个像素点所使用的位数,比如彩色jpg可能会使用24位表示一个点,这样的话就是3个字节

再计算要求的长和宽所需要的点数,并与字节数相乘。如100*100像素的彩色图片需要100*100*3字节,即30K。这个结果是非压缩数据大小 。

最后估算压缩比,不同的算法会有一个压缩比范围,如 JPEG支持多种压缩级别,压缩比率通常在10:1到40:1之间,按10:1计算的话,上例中的实际存储容量在3K左右。

最终得到一个存储容量大小,建议为此最终结果保留一定的浮动冗余空间。

看用什么方法输入数据,每成功输入1个数据,你用累加器加1。

常用输入数据函数是 scanf(), 这个函数能返回成功读入的数据个数。

例如: n = scanf("%d %f %lf %s", &k, &a, &x, s)

成功读入4个,n得4,成功读入3个,n得3,。。。成功读入1个,n得1,

一个也没成功,n得 0。

如果循环读入:

int sum=0, i=0

while(...){

n = scanf("%d %f %lf %s", &k[i], &a[i], &x[i], s[i])

sum = sum + n

i++;

}

printf("成功读入的数据个数是%d\n",sum)

(一)32位平台:

分为有符号型与无符号型。

有符号型:

short 在内存中占两个字节,范围为-2^15~(2^15-1)

int 在内存中占四个字节,范围为-2^31~(2^31-1)

long在内存中占四个字节,范围为-2^31~2^31-1

无符号型:最高位不表示符号位

unsigned short 在内存中占两个字节,范围为0~2^16-1

unsigned int 在内存中占四个字节,范围为0~2^32-1

unsigned long在内存中占四个字节,范围为0~2^32-1

实型变量:

分单精度 float 和双精度 double 两种形式:

float:占四个字节,提供7~8位有效数字。

double: 占八个字节,提供15~16位有效数字。

(二)16位平台:

1)整型(基本型):类型说明符为int,在内存中占2个字节。

2)短整型:类型说明符为short int或short。所占字节和取值范围均与整型(基本型)相同。

3)长整型:类型说明符为long int或long,在内存中占4个字节。

无符号型:类型说明符为unsigned。

无符号型又可与上述三种类型匹配而构成:

各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。

实型变量:

分为单精度(float型)、双精度(double型)和长双精度(long double型)三类。

单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。

双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。

长双精度型16 个字节(128位)内存空间,可提供18-19位有效数字。