1.Point类
OpenCV中的基础数据类型,可能是最简单的。
1.1别名
常使用别名来进行实例化
//2D Point
typedef Point_<int> Point2i;
typedef Point_<int64> Point2l;
typedef Point_<float> Point2f;
typedef Point_<double> Point2d;
typedef Point2i Point;
//3D Point
typedef Point3_<int> Point3i;
typedef Point3_<float> Point3f;
typedef Point3_<double> Point3d;
1.2构造函数
//2D point
Point_();
Point_(_Tp _x, _Tp _y);
//3D Point
Point3_();
Point3_(_Tp _x, _Tp _y, _Tp _z);
1.3常用操作
//成员访问
p.x; p.y;
//点乘
float x=p1.dot(p2);
//叉乘,3D Point Only
p1.cross(p2);
2.Scalar类
从模板类生成的四维点类。该类被广泛的用在传递像素值。
2.1构造函数
//! default constructor
Scalar_();
Scalar_(_Tp v0, _Tp v1, _Tp v2=0, _Tp v3=0);
2.2常用操作
//! returns a scalar with all elements set to v0
static Scalar_<_Tp> all(_Tp v0);
//! conversion to another data type
template<typename T2> operator Scalar_<T2>() const;
//! per-element product
Scalar_<_Tp> mul(const Scalar_<_Tp>& a, double scale=1 ) const;
//! returns (v0, -v1, -v2, -v3)
Scalar_<_Tp> conj() const;
//! returns true iff v1 == v2 == v3 == 0
bool isReal() const;
3.Size类
有两个成员变量,width和height。常用来说明图片或矩形的大小。与Point类似,可相互转换。
3.1别名
typedef Size_<int> Size2i;
typedef Size_<int64> Size2l;
typedef Size_<float> Size2f;
typedef Size_<double> Size2d;
typedef Size2i Size;
3.2构造函数
//! default constructor
Size_();
Size_(_Tp _width, _Tp _height);
3.3常用操作
//! the area (width*height)
_Tp area() const;
//! aspect ratio (width/height)
double aspectRatio() const;
//! true if empty
bool empty() const;
4.Rect类
由四个参数描述,可理解为描述矩形左上角点坐标的Point类的x,y,和描述矩形边长的Size类的width,height。
_Tp x; //!< x coordinate of the top-left corner
_Tp y; //!< y coordinate of the top-left corner
_Tp width; //!< width of the rectangle
_Tp height; //!< height of the rectangle
常用来描述一个图片的ROI(Region of Interest)。
Virtually every loop over an image ROI in OpenCV (where ROI is specified by Rect_\<int\> ) is
implemented as:
@code
for(int y = roi.y; y < roi.y + roi.height; y++)
for(int x = roi.x; x < roi.x + roi.width; x++)
{
// ...
}
@
4.1别名
typedef Rect_<int> Rect2i;
typedef Rect_<float> Rect2f;
typedef Rect_<double> Rect2d;
typedef Rect2i Rect;
4.2构造函数
Rect_();
Rect_(_Tp _x, _Tp _y, _Tp _width, _Tp _height);
4.3常用操作
//! the top-left corner
Point_<_Tp> tl() const;
//! the bottom-right corner
Point_<_Tp> br() const;
//! size (width, height) of the rectangle
Size_<_Tp> size() const;
//! area (width*height) of the rectangle
_Tp area() const;
//! true if empty
bool empty() const;
//! conversion to another data type
template<typename _Tp2> operator Rect_<_Tp2>() const;
//! checks whether the rectangle contains the point
bool contains(const Point_<_Tp>& pt) const;