前面讲了CvMat矩阵结构,下面介绍IplImage,本质上讲IplImage也是CvMat结构,但是它还有一些成员将矩阵解释为图像。
IplImage结构
IplImage头结构:
typedef struct _IplImage {
int nSize;
int ID;
int nChannels;
int alphaChannel;
int depth;
char colorModel[4];
char channelSeq[4];
int dataOrder;
int origin;
int align;
int width;
int height;
struct _IplROI* roi;
struct _IplImage* maskROI;
void* imageId;
struct _IplTileInfo* tileInfo;
int imageSize;
char* imageData;
int widthStep;
int BorderMode[4];
int BorderConst[4];
char* imageDataOrigin;
} IplImage;
其中比较重要的变量是width,height,depth,Channels,imageData和widthStep。前两个和矩阵一样,depth和nChannels在矩阵中写在一起,这里则分开表示。depth即数据类型主要有6个,在第一篇里遇到过:
- IPL_DEPTh_8U 无符号8位整数
- IPL_DEPTh_8S 有符号8位整数
- IPL_DEPTh_16S 有符号16位整数
- IPL_DEPTh_32S 有符号32位整数
- IPL_DEPTh_32F 有符号32位浮点数单精度
- IPL_DEPTh_64F 有符号64位浮点数双精度