opencv学习(十一)之绘图函数

opencv中提供了很多绘图函数,在进行图像处理,对感兴趣区域进行标定时,就需要利用这些绘图函数。现在集中做一个归纳介绍。

1. Point
Point常用来指定一幅二维图像中的点。如

Point pt;
pt.x = 10;
pt.y = 8;
或
Point pt = Point(10,8);

其指向的是在图像中(10, 8)位置的一个像素点。
查找Point引用可以在”core.hpp”文件发现如下语句:

typedef Point_<int> Point2i;
typedef Point2i Point;

即Point_与Point2i和Point是等价的。查看Point_定义出现很多模板如下:

template<typename _Tp> inline Point_<_Tp>::Point_(_Tp _x, _Tp _y) : x(_x), y(_y) {}

其从Point_继承而来,继续查看Point_定义如下:

template<typename _Tp> class Point_
{
public:
    typedef _Tp value_type;

    // various constructors
    Point_();
    Point_(_Tp _x, _Tp _y);
    Point_(const Point_& pt);
    Point_(const CvPoint& pt);
    Point_(const CvPoint2D32f& pt);
    Point_(const Size_<_Tp>& sz);
    Point_(const Vec<_Tp, 2>& v);

    Point_& operator = (const Point_& pt);
    //! conversion to another data type
    template<typename _Tp2> operator Point_<_Tp2>() const;

    //! conversion to the old-style C structures
    operator CvPoint() const;
    operator CvPoint2D32f() const;
    operator Vec<_Tp, 2>() const;

    //! dot product
    _Tp dot(const Point_& pt) const;
    //! dot product computed in double-precision arithmetics
    double ddot(const Point_& pt) const;
    //! cross-product
    double cross(const Point_& pt) const;
    //! checks whether the point is inside the specified rectangle
    bool inside(const Rect_<_Tp>& r) const;

    _Tp x, y; //< the point coordinates
};

整个Point类的定义就很明显了。可以通过制定(x,y)来指定二维图像中的点。

2. Scalar
表示颜色的类,Scalar代表了一个四元素的vector容器,在opencv中常用来传递像素值。在本篇博客中将主要用来表示BGR三个像素的值。如果不使用则最后一个参数不用设置。如

Scalar(a, b, c);

其中a,b,c分别代表像素点Blue,Green,Red的值。
同样查看Scalar类的引用在”core.hpp”头文件发现如下语句:

typedef Scalar_<double> Scalar;

查看Scalar_定义:

template<typename _Tp> class Scalar_ : public Vec<_Tp, 4>
{
public:
    //! various constructors
    Scalar_();
    Scalar_(_Tp v0, _Tp v1, _Tp v2=0, _Tp v3=0);
    Scalar_(const CvScalar& s);
    Scalar_(_Tp v0);

    //! returns a scalar with all elements set to v0
    static Scalar_<_Tp> all(_Tp v0);
    //! conversion to the old-style CvScalar
    operator CvScalar() const;

    //! conversion to another data type
    template<typename T2> operator Scalar_() const;

    //! per-element product
    Scalar_<_Tp> mul(

你可能感兴趣的:(OpenCV基础,opencv2/3基础教程,opencv直线,circle,ellipse,fillpoly,opencv绘图函数)