opencv在两点间画箭头的方法

OpenCV库本身不直接提供画箭头的功能,但可以通过结合cvline方法实现。这个技巧常用于图像处理,特别是在标定运动方向,如光流分析等场景。
摘要由CSDN通过智能技术生成

在opencv中没有可以直接画箭头的方法,但是可以利用cvline方法来解决画箭头的问题。画箭头非常常用,在图像中标定运动方向中经常用到,如光流法等。

以下是解决方案。


         double alpha_angle;//弧度
         CvScalar line_color;
	 line_color = CV_RGB(0,0,255);

	 cv::Point  pt1 = cvPoint(5,5);//起点
	 cv::Point  pt2 = cvPoint(5,36); //终点
	 cvLine(src,pt1,pt2,CV_RGB(0,0,255),1,8,0);//起点和终点间画直线


	 float xx=pt2.x-pt1.x;
	 float yy=pt2.y-pt1.y;

	  if(xx<ZERO && xx>-ZERO)//ZERO是坐标的原点
            alpha_angle = pi/2;
          else
            alpha_angle = abs(atan(yy/xx));
      //调整角度
      if(xx<0 && yy>0) alpha_angle = pi - alpha_angle ;
      if(xx<0 && yy<0) alpha_angle = pi + alpha_angle ;
      if(xx>0 && yy<0) alpha_angle = 2*pi - alpha_angle ;

	  
      CvPoint p;//pt2是箭头的尖角顶点,而p是箭头两边的点。箭头是由p-pt2和pt2-p的两条线段(p赋了两次不同的值,前后不是一个点),以及pt1-pt2
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值