图像处理16:图像内存计算和类的内存计算
(1)图像的内存计算:
①图像内存的计算公式:
图像所占内存=图像分辨率*一个像素所占内存空间
②位深度:
如有位深度1,则可以组成种颜色,即二值图像;
如有位深度8,则可以组成种颜色,即为256色图像。
③应用举例:
分辨率30*40,位深度为24的图像内存计算为:30*40*24/8=3600(字节);
除8是因为1字节=8比特。
(2)c++中类的内存计算:
①类所占内存大小由成员变量决定(除去静态变量),与成员函数无关;
②空类的内存:
由于c++要求每个实例在内存中都有独一无二的地址,并且空类也会被实例化,因此编译器为空类隐含添加一个字节。
因此空类所占内存为1个字节。
③虚函数的指针:
c++类中如果存在虚函数,那么会有一个指向虚函数的指针(32位系统中占用4个字节),与虚函数个数无关,只有一个指针。
④子类所占内存:
子类大小是本身成员变量大小加上父类大小,子类与父类共享一个虚函数指针。
⑤类的内存对齐问题;
如以下类,int占四个字节,char占一个字节,补齐三个字节,共12个字节。
class A
{
int a;
char b;
char c;
}