OpenCV 2.0 使用手册:核心结构与数组操作

需积分: 10 2 下载量 42 浏览量 更新于2024-07-22 收藏 4.26MB PDF 举报
"该资源是OpenCV 2.0的使用手册,主要涵盖了库的核心功能和数据结构。手册指出2.0版本相比1.0有了许多变动,包括基本结构、数组操作等内容。" OpenCV(开源计算机视觉库)是一个强大的跨平台计算机视觉库,它包含了大量的图像处理和计算机视觉算法,广泛应用于图像分析、识别和机器学习等领域。OpenCV 2.0版本对1.0进行了许多改进和扩展,使其更加易用和高效。 1. 基本结构: - `CvPoint`:表示二维坐标点,包含两个整数坐标(x, y)。 - `CvPoint2D32f`和`CvPoint2D64f`:浮点数表示的二维点,用于更精确的坐标计算。 - `CvPoint3D32f`和`CvPoint3D64f`:三维点,用于处理3D空间中的数据。 - `CvSize`:表示二维尺寸,常用于定义图像大小。 - `CvSize2D32f`:浮点数表示的二维尺寸。 - `CvRect`:矩形结构,包含了矩形的左上角坐标和宽度、高度。 - `CvScalar`:四元素向量,通常用于颜色值或标量运算。 - `CvTermCriteria`:用于终止循环或迭代的条件,如达到特定迭代次数或误差阈值。 - `CvMat`和`CvMatND`:矩阵数据结构,`CvMat`用于二维矩阵,`CvMatND`用于多维数组。 - `CvSparseMat`:稀疏矩阵结构,适用于大量元素为零的情况。 - `IplImage`:旧版的图像结构,包含图像数据和其他属性。 - `CvArr`:一个抽象基类,可以表示多种OpenCV数据结构。 2. 数组操作: - 初始化:`CreateImage`、`CreateImageHeader`、`ReleaseImageHeader`、`ReleaseImage`、`InitImageHeader`、`CloneImage`、`SetImageCOI`、`GetImageCOI`、`SetImageROI`、`ResetImageROI`和`GetImageROI`等函数用于创建、释放和修改图像数组的头信息和内容。 - 矩阵操作:`CreateMat`、`CreateMatHeader`、`ReleaseMat`、`InitMatHeader`、`Mat`、`CloneMat`、`CreateMatND`、`CreateMatNDHeader`、`ReleaseMatND`、`InitMatNDHeader`和`CloneMatND`等函数用于创建、释放和操作多维矩阵。 - 数据访问:`DecRefData`、`IncRefData`、`CreateData`、`ReleaseData`、`SetData`、`GetRawData`、`GetMat`和`GetImage`用于管理矩阵的数据引用和获取数据。`GetSubRect`、`GetRow`和`GetCol`等函数则提供了访问子区域和子数组的方法。 这些基本结构和操作构成了OpenCV 2.0的基础,使得开发者能够有效地处理图像和数组数据,进行诸如图像变换、特征检测、对象识别等复杂的计算机视觉任务。由于版本更新,一些旧的结构如`IplImage`逐渐被`CvMat`和后来的`cv::Mat`所替代,以提高性能和易用性。在使用OpenCV时,理解和熟练运用这些基本元素和操作是至关重要的。