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. shell与 .sh文件与 .bash文件
  2. linux分析文件格式,linux elf文件格式分析
  3. 【转】js之iframe子页面与父页面通信
  4. MicroPython 1.8.6重新支持512K的模块
  5. oracle日志表设计,数据库设计 – 数据库日志表结构
  6. 只懂黑盒测试也能学会代码覆盖率分析和精准测试
  7. AcWing 866. 试除法判定质数(素数判定)
  8. 吃了核辐射食物怎么办_尿酸过高怎么办?这几种食物,平时可多吃
  9. 使用shadow dom封装web组件
  10. 量化指标公式源码_量化指标公式源码,通达信量化买盘潮指标
  11. 三原色是红黄蓝对吗_三原色是哪几种颜色?是红黄蓝,还是红绿蓝
  12. iOSRGB常用的色值
  13. ubuntu16.04,zed7020,sdsoc,xfOpenCV,arm-linux,OpenCV3.4.1
  14. 学习笔记之Vue基础学习(一)
  15. 华硕电脑重装系统后fn组合键部分屏幕无显示
  16. 泰坦尼克号任务-模型建立和评估
  17. SCSI总线和协议以及SAN存储网络详解
  18. LSB低位隐写(菜鸡理解)
  19. Qt: 表格(QTableWidget)隐藏自动生成的序号列(行头)
  20. MYSQL 安装/ Navicat可视化数据库使用

热门文章

  1. 亚马逊AI编程助手CodeWishperer的使用
  2. python中调用什么模块的什么函数来实现求实数平方根_python语言基础与应用答案...
  3. 一文带你了解python是什么?能做什么?为什么要学?
  4. python爬豆瓣小组,爬虫豆瓣群数量,小组
  5. Elasticsearch 入门到高手的成长阶梯-Elasticsearch集成中文分词IK
  6. VSCode中一款超级强大的Markdown插件(可修改Markdown预览主题)--MPE
  7. 自然环保美家 莫斯科165平温情公寓
  8. 安卓期末作品小项目_创意编程作品赞美!
  9. VIEWGOOD(远古)大科普:高清直播技术在网络电视中的运用
  10. html树长苹果,今年苹果上这两个病害为什么这么严重?