美文网首页电竞·游戏OpenCv读书
【图像处理】OpenCV系列二十八 --- 绘制带箭头的直线(a

【图像处理】OpenCV系列二十八 --- 绘制带箭头的直线(a

作者: 307656af5a04 | 来源:发表于2019-05-11 20:29 被阅读18次

    上一节我们学习了积分图(integral)相关的知识点,相信大家学习之后,对积分图已经有了基本的认识,从现在,我们开始了一个新的知识点,就是如何运用openCV中的绘制函数,本节呢,我们学习如何绘制一个带箭头的直线。

    一、函数详解

    1、函数原型

    void arrowedLine(InputOutputArray img, 
        Point pt1, 
        Point pt2, 
        const Scalar& color,
        int thickness = 1, 
        int line_type = 8, 
        int shift = 0, 
        double tipLength = 0.1);
    

    2、函数功能
    绘制带箭头的直线;

    3、参数详解

    • 第一个参数,InputOutputArray img,要绘制箭头的图像;

    • 第二个参数,Point pt1,箭头的起始点;

    • 第三个参数,Point pt2,箭头指向的点;

    • 第四个参数,const Scalar& color,绘制的线的颜色;

    • 第五个参数,int thickness = 1,线的粗细;

    • 第六个参数,int line_type = 8,线的类型;

    线的类型:
    FILLED,填充;
    LINE_4,4连通的线条;
    LINE_8 ,8连通的线条;
    LINE_AA ,抗锯齿线条;

    • 第七个参数,int shift = 0,点坐标中的小数位数;

    • 第八个参数,double tipLength = 0.1,箭头的长度与箭头长度的关系;

    二、综合实例

    1、实验案例

    #include <opencv2/opencv.hpp>
    #include <iostream>
    
    using namespace cv;
    using namespace std;
    
    int main(int argc, char** argv)
    {
        // 载入图像
        Mat src = imread("lena.png", 1);
    
        // 判断图像是否为空
        if (src.empty())
        {
            cout << "Image empty !\n";
            return 0;
        }
        namedWindow("原图");
        imshow("原图", src);
    
        // 绘制带箭头的直线
        arrowedLine(src, Point(10, 10), 
            Point(300, 300), 
            Scalar(0, 255, 0), 3, 8);
    
        namedWindow("效果图");
        imshow("效果图", src);
    
        waitKey(0);
    
        return 0;
    }
    

    2、实验结果

    原图(左)与效果图(右)

    我是奕双,现在已经毕业将近两年了,从大学开始学编程,期间学习了C语言编程,C++语言编程,Win32编程,MFC编程,毕业之后进入一家图像处理相关领域的公司,掌握了用OpenCV对图像进行处理,如果大家对相关领域感兴趣的话,可以关注我,我这边会为大家进行解答哦!如果大家需要相关学习资料的话,可以私聊我哦!

    相关文章

      网友评论

        本文标题:【图像处理】OpenCV系列二十八 --- 绘制带箭头的直线(a

        本文链接:https://www.haomeiwen.com/subject/uilnoqtx.html