OpenCV系列(二):基本数据结构

常用的OpenCV数据结构像Mat,Point等我们并不陌生,但最近仔细阅读OpenCV手册后发现有些数据结构的一些便捷操作以及一些新加入的功能自己并没有掌握,这里做个记录算是学习笔记。

众多的类模板

我们平时常用的数据结构像Point,Rect其实是类模板某一数据类型的实例。比如Point对应Point_<int>Rect对应Rect_<int>。 这里就简单罗列一下Point对应的定义:

1
2
3
4
typedef Point_<int> Point2i;
typedef Point2i Point;
typedef Point_<float> Point2f;
typedef Point_<double> Point2d;

而且,Point也重载了加减乘除等操作运算符,比如:

1
2
3
4
5
6
7
Point pt1,pt2,pt3;
int a;
pt1 = pt2 + pt3, pt1 = pt2 - pt3;
pt1 = pt2 * a, pt1 = a * pt2;
pt1 += pt2, pt1 -= pt2, pt1 *= a;
double value = norm(pt); // L2 norm
pt1 == pt2, pt1 != pt2;

Read More