OpenCV2.4.9中arrowedLine不存在的问题

在OpenCV2.4.9中是不存在arrowedLine这个函数的,这个函数的作用是用来画带箭头的线段。在OpenCV2.4.13,2.4.12, 2.4.11, 2.4.10中这个函数位于core.hpp,在OpenCV3.0及以上是位于imgproc.hpp中。所以OpenCV2.4.9只能自定义函数,程序如下:

void arrowedLine(Mat& img, Point pt1, Point pt2, const Scalar& color)
{
    double tipLength = 0.1;

    const double tipSize = norm(pt1-pt2)*tipLength;

    line(img, pt1, pt2, color);

    const double angle = atan2( (double) pt1.y - pt2.y, (double) pt1.x - pt2.x );

    Point p(cvRound(pt2.x + tipSize * cos(angle + CV_PI / 4)),
        cvRound(pt2.y + tipSize * sin(angle + CV_PI / 4)));
    line(img, p, pt2, color);

    p.x = cvRound(pt2.x + tipSize * cos(angle - CV_PI / 4));
    p.y = cvRound(pt2.y + tipSize * sin(angle - CV_PI / 4));
    line(img, p, pt2, color);
}

思路就是先画pt1到pt2的一条直线,然后在pt2画出两条短线来模拟箭头。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值