您的位置:首页 > 运维架构

【OpenCV】基本数据类型

2015-04-10 17:06 399 查看

CvPoint

二维坐标系下的点,类型为整型

typedef struct CvPoint
{
intx;/* X坐标,通常以为基点*/
inty;/* y坐标,通常以为基点*/
}CvPoint;
/* 构造函数*/
inline CvPoint cvPoint(intx,inty);
/* 从CvPoint2D32f类型转换得来*/
inline CvPoint cvPointFrom32f(CvPoint2D32fpoint)


CvPoint2D32f

二维坐标下的点,类型为浮点

typedef struct CvPoint2D32f
{
floatx;/* X坐标,通常以为基点*/
floaty;/* Y坐标,通常以为基点*/
}CvPoint2D32f;
/* 构造函数*/
inline CvPoint2D32f cvPoint2D32f(doublex,doubley);
/* 从CvPoint转换来*/
inline CvPoint2D32f cvPointTo32f(CvPointpoint);


CvPoint3D32f

三维坐标下的点,类型为浮点

typedef struct CvPoint3D32f
{
floatx;/* x-坐标,通常基于*/
floaty;/* y-坐标,通常基于*/
floatz;/* z-坐标,通常基于*/
}
CvPoint3D32f;
/* 构造函数*/
inline CvPoint3D32f cvPoint3D32f(doublex,doubley,doublez);


CvSize

矩形框大小,以像素为精度

typedef struct CvSize
{
intwidth;/*矩形宽*/
intheight;/*矩形高*/
}
CvSize;
/* 构造函数*/
inline CvSize cvSize(intwidth,intheight);


CvSize2D32f

以亚像素精度标量矩形框大小

typedef struct CvSize2D32f
{
floatwidth;/*矩形宽*/
floatheight;/*矩形高*/
}
CvSize2D32f;
/* 构造函数*/
inline CvSize2D32f cvSize2D32f(doublewidth,doubleheight);
{
CvSize2D32fs;
s.width=(float)width;
s.height=(float)height;
returns;
}


CvRect

矩形框的偏移和大小

typedef struct CvRect
{
intx;/*方形的最左角的x-坐标*/
inty;/*方形的最上或者最下角的y-坐标*/
intwidth;/*宽*/
intheight;/*高*/
}
CvRect;
/* 构造函数*/
inline CvRect cvRect(intx,inty,intwidth,intheight);


CvMat

多通道矩阵

typedef struct CvMat
{
inttype;/* CvMat标识(CV_MAT_MAGIC_VAL),元素类型和标记*/
intstep;/*以字节为单位的行数据长度*/
int*refcount;/*数据引用计数*/
union
{
uchar*ptr;
short*s;
int*i;
float*fl;
double*db;
}data;/* data指针*/
#ifdef __cplusplus
union
{
introws;
intheight;
};
union
{
intcols;
intwidth;
};
#else
introws;/*行数*/
intcols;/*列数*/
#endif
} CvMat;


IplImage

IPL
图像头


typedef struct _IplImage
{
intnSize;/* IplImage大小*/
intID;/*版本(=0)*/
intnChannels;/*大多数OPENCV函数支持,2,3或4个通道*/
intalphaChannel;/*被OpenCV忽略*/
intdepth;/*像素的位深度: IPL_DEPTH_8U, IPL_DEPTH_8S,IPL_DEPTH_16U,  IPL_DEPTH_16S,IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F可支持*/
charcolorModel[4];/*被OpenCV忽略*/
charchannelSeq[4];/*同上*/
intdataOrder;/* 0 -交叉存取颜色通道, 1 -分开的颜色通道,cvCreateImage只能创建交叉存取图像*/
intorigin;/* 0 -顶—左结构,
1 - 底—左结构(Windows bitmaps风格) */
intalign;/*图像行排列(4 or 8). OpenCV忽略它,使用widthStep代替*/
intwidth;/*图像宽像素数*/
intheight;/*图像高像素数*/
struct_IplROI*roi;/*图像感兴趣区域.当该值非空只对该区域进行处理*/
struct_IplImage*maskROI;/*在OpenCV中必须置NULL */
void*imageId;/*同上*/
struct_IplTileInfo*tileInfo;/*同上*/
intimageSize;/*图像数据大小(在交叉存取格式下imageSize=image->height*image->widthStep),单位字节*/
char*imageData;/*指向排列的图像数据*/
intwidthStep;/*排列的图像行大小,以字节为单位*/
intBorderMode[4];/*边际结束模式,被OpenCV忽略*/
intBorderConst[4];/*同上*/
char*imageDataOrigin;/*指针指向一个不同的图像数据结构(不是必须排列的),是为了纠正图像内存分配准备的*/
}
IplImage;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  OpenCV