问题背景

使用OpenCV-Python处理图像时,有函数cv.line()函数可以快速画出直线,本以为使用该函数修改参数可以快速画出虚线等特殊直线,查阅OpenCV文档可以看到,cv.line()函数有参数lineType。那么该参数是修改所画直线类型的么?进一步查阅文档后发现lineType有以下四个值:

  • cv.FILLED
  • cv.LINE_4
  • cv.LINE_8
  • cv.LINE_AA

官方文档cv.line()描述这么描述该函数

The function line draws the line segment between pt1 and pt2 points in the image. The line is clipped by the image boundaries. For non-antialiased lines with integer coordinates, the 8-connected or 4-connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased lines are drawn using Gaussian filtering.

由此看出这里的lineType参数并不是所需的虚线、实线这个'Type'的意思。查询资料后发现似乎没法直接使用OpenCV的函数画虚线,因此需要自己实现画虚线的功能。

绘制虚线函数

import cv2
import numpy as np
def drawline(img,pt1,pt2,color,thickness=1,style='dotted',gap=20): dist =((pt1[0]-pt2[0])**2+(pt1[1]-pt2[1])**2)**.5 pts= [] for i in np.arange(0,dist,gap): r=i/dist x=int((pt1[0]*(1-r)+pt2[0]*r)+.5) y=int((pt1[1]*(1-r)+pt2[1]*r)+.5) p = (x,y) pts.append(p) if style=='dotted': for p in pts: cv2.circle(img,p,thickness,color,-1) else: s=pts[0] e=pts[0] i=0 for p in pts: s=e e=p if i%2==1: cv2.line(img,s,e,color,thickness) i+=1 

用点线或虚线的OpenCV矩形 - VoidCC

该函数实现通过调整gap参数调整画点间隔的方式变相实现了画虚线的功能。使用本函数画出的虚线明显看出由点组成,可以对其进行调整使用短线代替点。

OpenCV-Python画虚线相关推荐

  1. python 画虚线_Python数据可视化 - matplotlib

    数字可视化是将数据用统计图表方式呈现. python的作图库有两种,matplotlib 和 seaborn,本文主要介绍Matplotlib. Matplotlib 是一个 Python 的 2D绘 ...

  2. python 画虚线_宝宝爱看小猪佩奇,很简单,让我们用python搞定它

    宝宝爱看小猪佩奇,很简单,让我们用python搞定它 现在很多宝宝喜欢看小猪佩奇,今天就教大家用python的海龟画图画一个乖巧萌萌的小猪佩奇,引导对编程产生浓浓 的兴趣. 画图前引导 1.让我们打开 ...

  3. python 画虚线_武汉209画室:风景速写怎么画?

    速写风景作画步骤: 1. 选择好角度,根据构思确定取景并安排构图,再用虚线表示景物的位置. 2. 画出景物的基本型,尤其是主体大的关系. 3. 从前景开始用线条勾,需注意线条的疏密.粗细.曲直和软硬的 ...

  4. python画虚线代码_python – 使用matplotlib绘制虚线2D矢量?

    啊!实际上,linestyle ='dashed'确实有效,只是箭头箭头只是默认填充而没有设置线宽.它们是补丁而不是路径. 如果您这样做: import matplotlib.pyplot as pl ...

  5. Opencv——python画点、画框

    画点:cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]]) 画框:cv2.rectangle(image, ...

  6. python用函数绘制椭圆_详解opencv中画圆circle函数和椭圆ellipse函数

    1. void ellipse(InputOutputArray img, Point center, Size axes, double angle, double startAngle, doub ...

  7. openCV—Python(6)—— 图像算数与逻辑运算

    openCV-Python(6)-- 图像算数与逻辑运算 一.函数简介 1.add-图像矩阵相加 函数原型:add(src1, src2, dst=None, mask=None, dtype=Non ...

  8. 用python绘制柱状图标题-零基础用 Python 画图表,让你的论文高一个逼格

    原标题:零基础用 Python 画图表,让你的论文高一个逼格 曾经我在高中的时候有一篇数学探索的小作业,其中我需要画出一张比较复杂的函数图.由于 X 和 Y 的坐标轴标签都需要一定的自定义,所以微软 ...

  9. python画树叶-用python画树叶

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. draws a 叶子 and fill it. t.begin_fill ...

  10. python画图库哪个好_机器学习基础5--python画图库matplotlib(上)

    图像是我们最直观的数据表达方式,python的matplotlib库可以用来画图.下面来简单总结下matplotlib的使用方法. 上篇讲matplot画图中用到的基础对象,包括图像Figure,平面 ...

最新文章

  1. 必看,61篇NeurIPS深度强化学习论文解读都这里了
  2. 一文看完吴恩达最新演讲精髓,人工智能部署的三大挑战及解决方案
  3. mysql分表方法-----MRG_MyISAM引擎分表法
  4. [architecture]-arm exclusive机制介绍
  5. C语言字符串-字符串排序
  6. Razor传值到js
  7. 夺命雷公狗---DEDECMS----26dedecms面包屑导航的实现
  8. 论坛中,无限分类的原理
  9. mysql 数据库日志管理工具_mysql mysqlbinlog日志管理工具使用教程
  10. 点云的密度 曝光时间_200倍的提速!华人博士生提出大场景三维点云语义分割新框架...
  11. (day 27 - 递归分治 )剑指 Offer 33. 二叉搜索树的后序遍历序列
  12. 修复40G的老IDE硬盘
  13. html设置word页脚,Word页码从任意页开始如何设置?
  14. 前端常用PS技巧总结之将图片背景透明化
  15. 《大学“电路分析基础”课程实验合集.实验一》丨元器件的检测及万用表的使用
  16. 一些基于 D3.js 的图表库
  17. 第三人称计算机获奖感言,个人获奖感言50字第三人称
  18. STM32_RS485通信异常
  19. 近地天体撞击地球原理的设想
  20. 最新各大CMS采集资源站网址合集

热门文章

  1. Android Stidio修改桌面图标
  2. 井字棋(棋子可消去(拿走))
  3. HTML中注解的写法正确的是,css注释的写法(单行和多行)
  4. 梅特勒托利多xk3124电子秤说明书_托利多电子秤说明书
  5. 电热毯UL964测试申请要求有哪些呢
  6. JavaScript之“创意时钟”项目
  7. 【蓝桥杯备考】Acwing周赛 第41场 Java题解
  8. meebo FireFox add-on
  9. 毕业有救了?!留美学生创造出了自动写论文的机器人!
  10. Java流程控制:用for循环打印一个三角形