首先先介绍C++中图像数据分配内存方法。
在计算机中图像是一个二维的数字点阵。
比较容易想到的是申请一个二维矩阵来存储图像
如:
BYTE image[512][512];
可以存储一幅512*512个像素的图像,每个像素用一个字节表示,一个字节能表示0-255共256个不同取值。所以这一二维数组比较合适存储灰度图像。
对于二维彩色图像,如果每个像素分别有R,G,B 3个颜色分量,则可以用如下的方式分配二维数组。
struct RGB{
BYTE r;
BYTE g;
BYTE b;
};
RGB image[512][512];
但是分配二维数组有一个致命缺点,就是不能分配占用空间较大的数组,如imgae【5000】【5000】。
所以,比较好的二维图像内存分配方法可用以下思想:
BYTE *imgae[5000];