OpenCV 基本数据类型
OpenCV 是 Intel 公司支持的开源计算机视觉库,提供了多种基本数据类型,尽管这些数据类型在 C 语言中不是基本类型,但结构都很简单,可以将它们作为原子类型。在运用 OpenCV 函数库进行编程的过程中,常常会需要用到这些结构类型,只有真正了解这些结构才能够很好地利用 OpenCV 函数库来解决问题。
1. CvPoint 结构
CvPoint 结构是 OpenCV 中最简单的数据类型,表示二维坐标系下的点,类型为整型,定义如下:
typedef struct CvPoint {
int x; /* x 坐标, 通常以 0 为基点 */
int y; /* y 坐标, 通常以 0 为基点 */
} CvPoint;
2. CvSize 结构
CvSize 结构用来表示矩形框大小,以像素为精度,结构体中分别定义了矩形的宽高和高度,定义如下:
typedef struct Cvsize {
int width ; /* 矩形宽度,单位为像素 */
int height; /* 矩形高度,单位为像素 */
} CvSize;
3. CvRect 结构
该结构是用来表示矩形框的偏移和大小,定义如下:
typedef struct CvRect {
int x; /* 方形的最左角的 x-坐标 */
int y; /* 方形的最上或者最下角的y-坐标 */
int width; /* 宽 */
int height; /* 高 */
} CvRect;
4. CvScalar 结构
该结构是用来定义存放 1- 4 个数值的数组,定义如下:
typedef struct Cvscalar {
double val[4];
} CvScalar;
可用来表示 RGBA 的值,A = alpha 透明度
5. IplImage 结构
OpenCV 库主要是使用 “IplImage” 结构体来创造和处理图像,来源于 inter 的另外一个函数库 IPL,该函数库主要是针对图像处理。定义如下:
typedef struct IplImage {
int nSize; /*IplImage 大小 */
...
} IplImage;
这些基本数据类型是 OpenCV 库的基础组成部分,理解这些结构类型对于使用 OpenCV 库进行图像处理和计算机视觉开发非常重要。