常用的Opencv的数据类型
2013-12-26 13:01
85 查看
CvPoint,一个包含integer类型成员x和y的简单结构体。两个变体类型:CvPoint2D32f和CvPoint3D32f,其中2D和3D表示2维和3维,以及f表示浮点就不用多说了。
CvSize类型与CvPoint非常相似,但它的数据成员是integer类型的width和height,即引用的时候是.width而不是.x了。CvSize的变体只有一个CvSize2D32f。
CvRect类型派生于CvPoint和CvSize,它包含4个数据成员:x,y,width和height。
CvScalar是一个包含四个元素的结构体变量。
定义如下:
typedef
struct CvScalar
{
double val[4];
}
CvScalar;
CvScalar pt;
如果使用的图像是1通道的,则pt.val[0]中存储数据
如果使用的图像是3通道的,则pt.val[0],pt.val[1],pt.val[2]中存储数据
注意:(1)所有这些数据类型具有以其名称来定义的构造函数,例如cvSize()。(构造函数通常具有与结构类型一样的名称,只是首字母不大写)。
(2)cvScalar是一个特殊的例子:它有3个构造函数。第一个是cvScalar(),它需要一个、两个、三个或者四个参数并将这些参数传递给数组val[]中的相应元素。第二个构造函数是cvRealScalar(),它需要一个参数,它被传递给给val[0],而val[]数组别的值被赋为0。最后一个有所变化的是cvScalarAll(),它需要一个参数并且val[]中的4个元素都会设置为这个参数。
(3)Point3_<>、Size_<>以及Rect_<>有重新定义,比如 :
typedef Point_<int> Point2i;
typedef Point2i Point;
typedef Point_<float> Point2f;
typedef Point_<double> Point2d;
typedef Point3_<int> Point3i;
typedef Point3_<float> Point3f;
typedef Point3_<double> Point3d;
typedef Size_<int> Size2i;
typedef Size2i Size;
typedef Size_<float> Size2f;
typedef Rect_<int> Rect;
这样就可以直接用Point2f a(0.3f, 0.f), b(0.f, 0.4f);等来定义了。
此外还有图像和矩阵类型,这些都是比较常用并且非常有用的,后面我想做具体点的分析汇总后再写。
CvSize类型与CvPoint非常相似,但它的数据成员是integer类型的width和height,即引用的时候是.width而不是.x了。CvSize的变体只有一个CvSize2D32f。
CvRect类型派生于CvPoint和CvSize,它包含4个数据成员:x,y,width和height。
CvScalar是一个包含四个元素的结构体变量。
定义如下:
typedef
struct CvScalar
{
double val[4];
}
CvScalar;
CvScalar pt;
如果使用的图像是1通道的,则pt.val[0]中存储数据
如果使用的图像是3通道的,则pt.val[0],pt.val[1],pt.val[2]中存储数据
注意:(1)所有这些数据类型具有以其名称来定义的构造函数,例如cvSize()。(构造函数通常具有与结构类型一样的名称,只是首字母不大写)。
(2)cvScalar是一个特殊的例子:它有3个构造函数。第一个是cvScalar(),它需要一个、两个、三个或者四个参数并将这些参数传递给数组val[]中的相应元素。第二个构造函数是cvRealScalar(),它需要一个参数,它被传递给给val[0],而val[]数组别的值被赋为0。最后一个有所变化的是cvScalarAll(),它需要一个参数并且val[]中的4个元素都会设置为这个参数。
(3)Point3_<>、Size_<>以及Rect_<>有重新定义,比如 :
typedef Point_<int> Point2i;
typedef Point2i Point;
typedef Point_<float> Point2f;
typedef Point_<double> Point2d;
typedef Point3_<int> Point3i;
typedef Point3_<float> Point3f;
typedef Point3_<double> Point3d;
typedef Size_<int> Size2i;
typedef Size2i Size;
typedef Size_<float> Size2f;
typedef Rect_<int> Rect;
这样就可以直接用Point2f a(0.3f, 0.f), b(0.f, 0.4f);等来定义了。
此外还有图像和矩阵类型,这些都是比较常用并且非常有用的,后面我想做具体点的分析汇总后再写。
相关文章推荐
- 我是运营,我没有假期
- DB2数据库的安装
- “传奇”图象数据存储方式
- 修复mysql数据库
- SQLServer 数据导入导出的几种方法小结
- MySQL数据备份之mysqldump的使用详解
- 给你的数据库文件减肥
- 把excel表格里的数据导入sql数据库的两种方法
- 用文本作数据处理
- 桌面中心(一)创建数据库
- 桌面中心(四)数据显示
- SQL Server Management Studio Express管理器 没有导入导出数据的向导的解决方法
- ASP.NET页面间数据传递的几种方法介绍
- ASP 循环导入导出数据处理 不使用缓存
- 丢失的数据忘记备份的处理方法[图文]第1/2页
- sql复制表结构和数据的实现方法
- 数据库的日期格式转换
- js实现json数据行到列的转换的实例代码
- 4.与数据库的连接
- 四、处理表单数据