OpenCV绘图函数详解及其用法示例

        MFC类库中的CDC类有划线,画矩形,画椭圆,画多边形,文字等绘图函数,OpenCV也有类似的绘图函数。二者的区别在于MFC画图是在一定的区域内绘制图形,而OpenCV则是在图像上绘制,主要用于图像标注。

        OpenCV的常用绘图函数有arrowedLine,circle ,drawContours, drawMarker, drawMarker, ellipse,fillConvexPoly, fillPoly , line, polylines , putText ,rectangle 。下面详细介绍这些函数及其用法。

        arrowedLine()

        arrowedLine()函数的原型如下:

OpenCV绘图函数详解及其用法示例_第1张图片

参数:
        img   装载有图像的Mat对象

        pt1    第一点

        pt2    第二点

        color  绘制箭头线段颜色

        thickness 圆形轮廓的厚度(如果为正)。负值(例如 FILLED)表示要绘制实心圆。

        line_Type 线的类型,有FILLED,LINE_4,LINE_8,LINE_AA几种.

        shift  点坐标中小数位数

        tipLength 箭头尖端的长度与箭头长度的比例关系

        用法示例

        新建一个控制台程序,在程序中加入如下代码:

#include 
#include

using namespace std;
using namespace cv;

int main()
{
    //std::cout << "Hello World!\n";

    Mat bgn(Size(2048, 1024), CV_8UC3, Scalar(0)); 
    arrowedLine(bgn, Point(50, 50), Point(300, 100), Scalar(0, 0, 255), 2, 8, 0, 0.08);
    imshow("Background", bgn);



    waitKey(0);

    return 0;
}

试运行,结果如下:

OpenCV绘图函数详解及其用法示例_第2张图片

circle()

        circle()函数的原型如下:

OpenCV绘图函数详解及其用法示例_第3张图片

函数参数:

        img 图像,如载有图像的Mat对象

        center 圆心(点)

        color   颜色

        thickness 圆形轮廓的厚度(如果为正)。负值(例如 FILLED)表示要绘制实心圆。

        lineType 线条类型

        shift  中心坐标和半径值中的小数位数。

        示例程序

        上面程序中加入画圆代码,如下:

#include 
#include

using namespace std;
using namespace cv;

int main()
{
    //std::cout << "Hello World!\n";

    Mat bgn(Size(2048, 1024), CV_8UC3, Scalar(0)); 
    arrowedLine(bgn, Point(50, 50), Point(300, 100), Scalar

你可能感兴趣的:(opencv,人工智能,计算机视觉,OpenCV常用绘图函数,OpenCV绘图函数详解,OpenCV绘图函数示例)