1. 学习目标

  1. 学会使用 cv.arrowedLine 带箭头的直线;
  2. 绘制箭头的直线的注意事项。

2. 绘制箭头直线 cv.arrowedLine 函数说明

2.1 cv.arrowedLine() 函数使用

cv.arrowedLine(img, pt1, pt2, color[, thickness=1, line_type=8, shift=0, tipLength=0.1]) → img

2.2 参数说明

参数 说明
img 表示输入图像,允许单通道灰度图像或多通道彩色图像。
pt1 表示线段第一个点的坐标,(x1, y1)。
pt2 表示线段第二个点的坐标,(x2, y2)。
color 表示绘制直线的颜色,(b,g,r) 格式的元组,或者表示灰度值的标量。
thickness 表示绘制直线的粗细,默认值 1px。
lineType 表示绘制直线的线性,默认为 LINE_8。
shift 表示点坐标的小数位数,默认为 0。
tipLength 表示箭头部分长度与线段长度的比例,默认为 0.1

2.3 lineType 值说明

描述
cv.FILLED 表示内部填充(实心图形)。
cv.LINE_4 表示 4 邻接线型。
cv.LINE_8 表示 8 邻接线型。
cv.LINE_AA 表示抗锯齿线型,图像更平滑。

3. 实例

3.1 坐标轴实例代码

import cv2 as cv
import numpy as npdef create_csys():# 创建一个500*500的白色背景图片img = np.ones((500,500,3), dtype=np.uint8)*255h,w,c = img.shape# 设置坐标轴颜色color = (0,0,0)# 坐标轴x的起始坐标piontx1 = (10,int(h/2))pointx2 = (w - 10, int(h/2))# x轴绘制cv.arrowedLine(img, piontx1, pointx2, color)# 坐标轴y的起始坐标pionty1 = (int(w/2),h - 10)pointy2 = (int(w/2), 10)# y轴绘制cv.arrowedLine(img, pionty1, pointy2, color)cv.imshow("csys img", img)cv.waitKey(0)cv.destroyAllWindows()if __name__ == "__main__":create_csys()

3.2 实例运行结果

3.3 修改箭头大小实例代码

import cv2 as cv
import numpy as npdef create_csys():# 创建一个500*500的白色背景图片img = np.ones((500,500,3), dtype=np.uint8)*255h,w,c = img.shape# 设置坐标轴颜色color = (0,0,0)# 坐标轴箭头大小比例tipLength = 0.02# 坐标轴x的起始坐标piontx1 = (10,int(h/2))pointx2 = (w - 10, int(h/2))# x轴绘制cv.arrowedLine(img, piontx1, pointx2, color, tipLength=tipLength)# 坐标轴y的起始坐标pionty1 = (int(w/2),h - 10)pointy2 = (int(w/2), 10)# y轴绘制cv.arrowedLine(img, pionty1, pointy2, color, tipLength=tipLength)cv.imshow("csys img", img)cv.waitKey(0)cv.destroyAllWindows()if __name__ == "__main__":create_csys()

3.4 运行结果

3.5 其他实例

import cv2 as cv
import numpy as npdef create_demo():# 创建一个500*500的白色背景图片img = np.ones((300,300,3), dtype=np.uint8)*255h,w,c = img.shape# 创建越界箭头直线cv.arrowedLine(img, (10,50), (w+10,50), (255,0,0), tipLength=0.05)# 非越界箭头cv.arrowedLine(img, (10,100), (w,100), (0,255,0), tipLength=0.08)# 双向箭头point1 = (10,150)point2 = (w - 10,150)cv.arrowedLine(img, point1, point2, (0,0,255))cv.arrowedLine(img, point2, point1, (0,0,255))cv.imshow("csys img", img)cv.waitKey(0)cv.destroyAllWindows()if __name__ == "__main__":create_demo()

3.6 实例运行结果

4. 注意

  1. 点坐标的格式是 (x,y) 而不是 (y,x);
  2. 坐标点必须是int类型;
  3. 双向箭头的绘制就是两条交换起点和终点的箭头直线;
  4. color的值是(b,g,r);
  5. tipLength表示箭头部分长度与线段长度的比例。

OpenCV-Python学习(14)—— OpenCV 绘制箭头线(cv.arrowedLine)相关推荐

  1. python画箭头opencv_OpenCV绘制箭头线

    OpenCV绘制箭头线 可以使用imgproc类的arrowedLine()方法在图像上绘制箭头线. 以下是这种方法的语法 - arrowedLine(Mat img, Point pt1, Poin ...

  2. Opencv+Python学习记录9:掩膜(掩码)的使用(内附详细代码)

    一,基本概念 OpenCV中的很多函数都会指定一个掩模,也被称为掩码,例如: 计算结果=cv2.add(参数1,参数2,掩模) 当使用掩模参数时,操作只会在掩模值为非空的像素点上执行,并将其他像素点的 ...

  3. Python学习-Matplotlib库绘制简单点阵图、线型图操作

    Python学习-Matplotlib库绘制简单散点图图和线型图.标签设置以及刻度线设置操作 目录 1.Matplotlib绘图细节的简单理解 2.绘制点图.线型图 3.给图表设置复杂标注 4.移动刻 ...

  4. python读取excel画散点图-python学习之matplotlib绘制散点图实例

    要绘制单个点,可使用函数scatter(),并向其传递一对x和y坐标,它将在指定位置绘制一个点: """使用scatter()绘制散点图""" ...

  5. python画散点图类型-python学习之matplotlib绘制散点图实例

    要绘制单个点,可使用函数scatter(),并向其传递一对x和y坐标,它将在指定位置绘制一个点: """使用scatter()绘制散点图""" ...

  6. python画散点图-python学习之matplotlib绘制散点图实例

    要绘制单个点,可使用函数scatter(),并向其传递一对x和y坐标,它将在指定位置绘制一个点: """使用scatter()绘制散点图""" ...

  7. Python学习(14)--内置函数

    Python学习(14)--内置函数 1.Python内置函数 在Python中有很多的内置函数供我们调用,熟练的使用这些内置函数可以让编写代码时事半功倍,所谓内置函数就是那些Python已经预定义并 ...

  8. Python学习笔记 | opencv图像处理(一)

    1. 计算机数据--图片 1.1 图片信息解读 利用计算机处理图像信息,我们必须要先了解计算机如何阅读图片信息. 我们都知道,在计算机的世界中只存在0和1两个元素,因此,为了能让计算机读懂图片,我们需 ...

  9. opencv (一) 学习通过OpenCV图形界面及基础

    opencv 学习通过OpenCV图形界面基础 用的函数有 cv.line(), cv.circle(),cv.rectangle(), cv.ellipse(),cv.putText() 常用参数 ...

最新文章

  1. 通过python利用哈希值实现比较两个文件的一致性
  2. cocos2d-x-3.1 win32程序-初识源代码(coco2d-x 学习笔记二)
  3. pandas 或者字段值_Pandas 用法总结
  4. 不定积分24个基本公式_不定积分计算—典型题及解题技巧
  5. [读书笔记] 两则之一: 100Gbps传输
  6. 容器学习 之 容器的网络类型(十二)
  7. different behavior dialog popup display no
  8. Python学习(三)基础
  9. lua MVC框架 Orbit初探
  10. 从「模拟」理解零知识证明:平行宇宙与时光倒流—— 探索零知识证明系列(二)
  11. JspStudy环境下tomcat服务器无法正确运行servlet的一种解决方法
  12. Altium Designer 2020 学习笔记(四)------PCB布线、DRC检查、拼版设计、资料输出(配动态图操作演示)
  13. 美团前期运营模式(怎么吸引商家入驻?怎么吸引用户?)
  14. 数据字典的作用和定义(软件工程)
  15. Excel技能学习小结
  16. C#串口开发案例:迈瑞血球分析仪
  17. git 取消托管文件
  18. 苹果ipad如何横向_苹果iPad的阵容是一个完整的混乱
  19. 回溯算法——好的开始
  20. Linux创建模板封装虚拟机

热门文章

  1. CListCtrl控件的InsertItem和SetItemText和SetItem三个函数的区别
  2. 【181122】VC++开发的CAD绘图软件EastDraw源代码
  3. 配置scrapy-splash+python爬取医院信息(利用了scrapy-splash)
  4. 48、Linux共享内存传递cv::Mat
  5. 内码输入法手机版下载_windows7系统怎么下载和安装内码输入法?
  6. xtwpro2编程器_XTW100编程器驱动-XTW100编程器驱动软件下载 --pc6下载站
  7. 算法提高 ADV-76 GDP计算
  8. android 吹裙子,Android吹裙子的实现代码
  9. 做小程序平台比开网店更挣钱吗?
  10. 三星I8262D制作ROM教程