OpenCV 画箭头 python

本文介绍了如何使用OpenCV的arrowedLine函数绘制箭头以及其效果,由于默认效果不理想,作者自定义了一个画箭头的函数,通过指定起始点、终点和颜色,计算出箭头的7个关键点,并利用透明掩膜在原图上绘制出更美观的箭头。

openCV画箭头函数arrowedLine画出来的很丑,自己写了一个画箭头函数,结果如下
在这里插入图片描述

1、OpenCV 画箭头的函数

if __name__ == "__main__":
    path = r"D:\cycFeng\Data\tree3.jpg"
    img = cv2.imread(path)
    StartX = 640
    StartY = 528
    EndX = 368
    EndY = 426
    cv2.arrowedLine(img, (StartX, StartX), (EndX, EndY), (255, 0, 0), 2, 9, 0, 0.3)  # 画箭头
    cv2.imshow('q', img)
    cv2.waitKey()

cv2.arrowedLine(img, (StartX, StartX), (EndX, EndY), (255, 0, 0), 2, 9, 0, 0.3) # 画箭头
画出来效果如下,比较丑
在这里插入图片描述
2、自己写一个画箭头函数,
给定起始点和终点,以及颜色,先找到箭头的7个点,之后用透明掩膜在原图上画出透明箭头

"""
   @Author   : XiaoZhou
   @Time     : 2021/11/22 16:38
   @FileName : ArrowDraw.py
   @Function :
"""
import numpy as np
import cv2


def GetArrowPoints(StartX, StartY, EndX, EndY, Width, NoseWidth, ArrowSizeL):
    """
    这里返回一个箭头的五个点,X坐标水平向右, Y坐标垂直向下
    :param StartX: 开始点的X坐标
    :param StartY: 开始点Y的坐标
    :param EndX: 结束点X的坐标
    :param EndY: 结束点Y的坐标
    :param Width: 箭头尾部的宽度,这里宽度是一半
    :param NoseWidth: 箭头鼻翼的宽度,也是一半
    :param ArrowSizeL: 这里是箭头的长度
    :return:
    """
    xx = EndX - StartX  # 水平向右是X 竖直向下是Y
    yy 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值