OpenCV 2.0:CXCORE模块的入门与基本结构详解

需积分: 10 2 下载量 198 浏览量 更新于2024-07-22 1 收藏 4.26MB PDF 举报
OpenCV 2.0 使用手册的第一章主要关注CXCORE库中的基本数据结构,这是OpenCV的核心组件,提供了图像处理和计算机视觉应用中的关键数据类型和操作。以下是本章节的主要知识点: 1. **CvPoint**:这是一个二维整数坐标点结构体,用于表示图像中的像素位置。它由两个整数成员`x`和`y`组成,通常采用零基索引。CvPoint有两个构造函数:`inline CvPoint cvPoint(int x, int y)`用于创建一个新点,以及`inline CvPoint cvPointFrom32f(const CvPoint2D32f& point)`,用于将浮点坐标点转换为整数CvPoint。 2. **CvPoint2D32f/CvPoint3D32f/CvPoint2D64f/CvPoint3D64f**:这些是用于存储浮点坐标值的扩展版本,分别对应2D和3D空间,增加了精度但可能会占用更多的内存。 3. **CvSize**:表示一个区域的宽度和高度,常用于表示图像的尺寸或矩形区域大小。 4. **CvSize2D32f/CvRect**:与CvSize类似,但用于存储浮点尺寸或矩形,适用于需要精确控制的场景。 5. **CvScalar**:用于表示一组具有相同类型的数值,如RGB或HSV颜色值。 6. **CvTermCriteria**:定义了算法停止条件,比如在迭代次数达到一定限制或者误差小于某个阈值时停止。 7. **CvMat/CvMatND/CvSparseMat**:这三个类分别代表一维数组、多维数组和稀疏矩阵,是OpenCV中的基础矩阵数据结构,用于存储和操作图像数据。 8. **IplImage/CvArr**:旧版的OpenCV接口中的图像数据结构,现在已被CvMat取代,但仍作为历史参考存在。 9. **初始化操作**:包括创建和初始化图像(如CreateImage和InitImageHeader)、释放内存(如ReleaseImage和ReleaseMat)、设置和获取图像属性(如SetImageROI和GetImageROI)等。 10. **Mat操作**:Mat是OpenCV中最常用的数据结构,提供丰富的矩阵操作方法,如创建、复制、引用计数管理等,以及访问元素和子数组的方法。 11. **稀疏矩阵**:对于大型图像处理任务,CvSparseMat用于高效地存储和操作稀疏数据,包括创建、释放和复制。 12. **图像转换**:如GetSubRect和GetRow/GetCol用于获取图像的子区域或指定行/列。 这些知识点是CXCORE库的基础,理解和熟练掌握它们对于使用OpenCV进行图像处理和计算机视觉任务至关重要。后续章节会深入探讨更复杂的运算和功能,包括图像滤波、特征检测、机器学习等。