OpenCV-Python画虚线
问题背景
使用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画虚线相关推荐
- python 画虚线_Python数据可视化 - matplotlib
数字可视化是将数据用统计图表方式呈现. python的作图库有两种,matplotlib 和 seaborn,本文主要介绍Matplotlib. Matplotlib 是一个 Python 的 2D绘 ...
- python 画虚线_宝宝爱看小猪佩奇,很简单,让我们用python搞定它
宝宝爱看小猪佩奇,很简单,让我们用python搞定它 现在很多宝宝喜欢看小猪佩奇,今天就教大家用python的海龟画图画一个乖巧萌萌的小猪佩奇,引导对编程产生浓浓 的兴趣. 画图前引导 1.让我们打开 ...
- python 画虚线_武汉209画室:风景速写怎么画?
速写风景作画步骤: 1. 选择好角度,根据构思确定取景并安排构图,再用虚线表示景物的位置. 2. 画出景物的基本型,尤其是主体大的关系. 3. 从前景开始用线条勾,需注意线条的疏密.粗细.曲直和软硬的 ...
- python画虚线代码_python – 使用matplotlib绘制虚线2D矢量?
啊!实际上,linestyle ='dashed'确实有效,只是箭头箭头只是默认填充而没有设置线宽.它们是补丁而不是路径. 如果您这样做: import matplotlib.pyplot as pl ...
- Opencv——python画点、画框
画点:cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]]) 画框:cv2.rectangle(image, ...
- python用函数绘制椭圆_详解opencv中画圆circle函数和椭圆ellipse函数
1. void ellipse(InputOutputArray img, Point center, Size axes, double angle, double startAngle, doub ...
- openCV—Python(6)—— 图像算数与逻辑运算
openCV-Python(6)-- 图像算数与逻辑运算 一.函数简介 1.add-图像矩阵相加 函数原型:add(src1, src2, dst=None, mask=None, dtype=Non ...
- 用python绘制柱状图标题-零基础用 Python 画图表,让你的论文高一个逼格
原标题:零基础用 Python 画图表,让你的论文高一个逼格 曾经我在高中的时候有一篇数学探索的小作业,其中我需要画出一张比较复杂的函数图.由于 X 和 Y 的坐标轴标签都需要一定的自定义,所以微软 ...
- python画树叶-用python画树叶
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. draws a 叶子 and fill it. t.begin_fill ...
- python画图库哪个好_机器学习基础5--python画图库matplotlib(上)
图像是我们最直观的数据表达方式,python的matplotlib库可以用来画图.下面来简单总结下matplotlib的使用方法. 上篇讲matplot画图中用到的基础对象,包括图像Figure,平面 ...
最新文章
- 必看,61篇NeurIPS深度强化学习论文解读都这里了
- 一文看完吴恩达最新演讲精髓,人工智能部署的三大挑战及解决方案
- mysql分表方法-----MRG_MyISAM引擎分表法
- [architecture]-arm exclusive机制介绍
- C语言字符串-字符串排序
- Razor传值到js
- 夺命雷公狗---DEDECMS----26dedecms面包屑导航的实现
- 论坛中,无限分类的原理
- mysql 数据库日志管理工具_mysql mysqlbinlog日志管理工具使用教程
- 点云的密度 曝光时间_200倍的提速!华人博士生提出大场景三维点云语义分割新框架...
- (day 27 - 递归分治 )剑指 Offer 33. 二叉搜索树的后序遍历序列
- 修复40G的老IDE硬盘
- html设置word页脚,Word页码从任意页开始如何设置?
- 前端常用PS技巧总结之将图片背景透明化
- 《大学“电路分析基础”课程实验合集.实验一》丨元器件的检测及万用表的使用
- 一些基于 D3.js 的图表库
- 第三人称计算机获奖感言,个人获奖感言50字第三人称
- STM32_RS485通信异常
- 近地天体撞击地球原理的设想
- 最新各大CMS采集资源站网址合集