(一)OpenCv中,python接口的基本的绘图函数

1-用于绘制直线的--------cv2.line()函数

2-用于绘制椭圆的--------cv2.ellipse()函数

3-用于绘制矩形的--------cv2.rectangle()函数

4-用于绘制圆的-----------cv2.circle()函数

5-用于绘制多边形的----cv2.fillploy()函数

6-用于绘制文本的------cv2.putText()函数

#coding:utf-8

#===================================================================================================

#文件说明:

# 第三节:基本图形的绘制

#开发环境:

# Ubuntu14.04+Python2.7+IDLE+IPL

#时间地点:

# 陕西师范大学 2016.11.19

#作  者:

# 九月

#===================================================================================================

import numpy as np #[1]导入python中的数值分析,矩阵运算的程序库模块

import cv2 #[2]导入OpenCv程序库模块

from matplotlib import pyplot as plt #[3]仅仅导入了matplotlib绘图程序库中的一个子模块

'''【模块1】定义一个画直线的函数'''

#1--img--------[1]画直线的图片

#2--start------[2]直线的起点

#3--end--------[3]直线的终点

#4--(255,0,0)--[4]直线的颜色

#5--thickness--[5]直线的粗细

#6--lineType---[6]直线的类型--实线,虚线

def DrawLine(srcImg,start,end):

thickness = 2

lineType = 8

cv2.line(srcImg,start,end,(255,0,0),thickness,lineType)

'''【模块2】定义一个画矩形的函数'''

#1--画一个矩形的时候,只需要知道两点:左上角定点和右下角定点

#2--画一个矩形,只需要知道两个Point

def DrawRectangle(srcImg,leftTopPoint,rightButtomPoint):

thickness = 2

lineType = 8

cv2.rectangle(srcImg,leftTopPoint,rightButtomPoint,(0,0,255),thickness,lineType)

'''【模块3】画圆'''

#1--画圆,我们只需要知道原型的中心和半径的大小

def DrawCircle(srcImg,centerPoint,radius):

thickness = 2

lineType = 8

cv2.circle(srcImg,centerPoint,radius,(0,255,0),thickness,lineType)

'''【模块4】画椭圆'''

def DrawEllipse(srcImg,centerPoint,radius,angle):

thickness =2

lineType =8

cv2.ellipse(srcImg,centerPoint,radius,angle,0,360,(255,255,0),thickness,lineType)

srcImg = np.zeros((512,512,3),np.uint8) #[1]创建一个width*heigth=512*512的数通道的黑色彩色图片

DrawLine(srcImg,(0,0),(511,511)) #[2]画直线

DrawLine(srcImg,(0,100),(511,511))

DrawRectangle(srcImg,(10,10),(300,300)) #[3]画矩形

DrawCircle(srcImg,(255,255),100) #[4]画圆

DrawCircle(srcImg,(255,255),200)

DrawEllipse(srcImg,(255,255),(150,20),0) #[5]画椭圆,中心点(255,255),长半轴150,短半轴20,旋转角度0

DrawEllipse(srcImg,(255,255),(150,20),45) #[5]画椭圆,中心点(255,255),长半轴150,短半轴20,旋转角度45

DrawEllipse(srcImg,(100,255),(150,20),135) #[5]画椭圆,中心点(100,255),长半轴150,短半轴20,旋转角度45

#[6]在图片上绘制字体

cv2.putText(srcImg,"I am Maweifei,OPenCv",(0,500),cv2.FONT_HERSHEY_SIMPLEX,1,(255,0,255),2,8)

cv2.namedWindow("[srcImg]")

cv2.moveWindow("[srcImg]",10,10)

cv2.imshow("[srcImg]",srcImg)

cv2.waitKey(0)

cv2.destroyWIndow("[srcImg]")

python drawline_基于python,OPenCv中基本的绘图函数相关推荐

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

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

  2. Python之pandas:pandas中to_csv()、read_csv()函数的index、index_col(不将索引列写入)参数详解之详细攻略

    Python之pandas:pandas中to_csv().read_csv()函数的index.index_col(不将索引列写入)参数详解之详细攻略 目录 pandas中to_csv().read ...

  3. c++ python opencv_ubuntu下C++与Python混编,opencv中mat类转换

    C++ 与 Python 混编 因为赶项目进度,需要使用到深度学习的内容,不过现有的深度学习框架大多使用python代码,对于不会改写C++的朋友来说,需要耗费大量的时间去改写,因此,使用python ...

  4. python系统-基于Python搭建Django后台管理系统

    一个好的项目数据库管理后台是必须的,今天代码君教大家搭建Django网站后台,当然做网站后台的前提是需要有Python以及Django的开发环境,至于如何搭建这些开发环境,请查看我的上一篇文章 Mac ...

  5. python篮球-基于Python/Java的人工智能篮球训练系统的制作方法

    本发明涉及信息技术领域,尤其涉及一种基于Python/Java的人工智能篮球训练系统. 背景技术: 人工智能的发展已经开始渗透到各行各业.经过发明人的研究和检索,发现作为篮球训练,已经有专利申请.其中 ...

  6. 【Python】基于Python获取链家小区房价信息及其POI数据

    文章目录 1 简介 2 效果展示 3 分析网页 4 代码思路 5 完整代码 6 相关文章 1 简介 本来要先发在csdn上的,但是之前学弟催我给他公众号写点东西,我就把这篇博客首发在他的公众号上,现在 ...

  7. (附源码)python+mysql+基于python的学生成绩管理系统 毕业设计071143

    Django学生成绩管理 摘 要 在国家重视教育影响下,教育部门的密确配合下,对教育进行改革.多样性.质量等等的要求,使教育系统的管理和运营比过去十年前更加理性化.依照这一现实为基础,设计一个快捷而又 ...

  8. python+mysql+基于python的学生成绩管理系统 毕业设计-附源码071143

    Django学生成绩管理 摘   要 在国家重视教育影响下,教育部门的密确配合下,对教育进行改革.多样性.质量等等的要求,使教育系统的管理和运营比过去十年前更加理性化.依照这一现实为基础,设计一个快捷 ...

  9. python 模拟考试系统_Project-OTS: Online Exam System written on Python 3. 基于Python 3的在线考试系统。...

    Project-OTS Online Exam System written on Python 3. Your can first try it on ots.icystal.top. 基于Pyth ...

最新文章

  1. android 之Activity的五种传值方式 (在从当前Activity跳转到目标Activity时的传值方式)
  2. oracle 设置查询条数,SQL、MySQL、Oracle、 Sqlite、Informix数据库查询指定条数数据的方法...
  3. memcache如何更新mysql_使用MySQL触发器如何实现memcache自动更新
  4. 告诉你,Spring Boot 真是个牛逼货
  5. 挑战程序设计竞赛 (秋叶拓哉 / 岩田阳一 / 北川宜稔 著)
  6. redis rdb aof区别_Redis(三):持久化RDB,fork.copyonwrite,AOF,RDBamp;AOF混合使用
  7. WinDbg 命令三部曲:(一)WinDbg 命令手册
  8. Linux 中显示所有正在运行的进程
  9. Windows XP操作系统中的禁忌
  10. html/jsp下载Excel文件
  11. 从“五种权力论”说新人入职要点
  12. backtrack常用的一些综合扫描工具实例用法
  13. 解决Windows无法加载中文(中国)-王码五笔输入法(任何输入法都行) 键盘的布局的方法...
  14. 数学建模(十)博弈论
  15. 暗影精灵3 黑苹果macOS BigSur 11.2.3 EFI
  16. ios和linux共享的笔记软件,超好用!5款完全免费、支持全平台的笔记软件
  17. 免费网站建设应该要掌握哪些?
  18. Android系统内存优化
  19. Knowledge graph, Freebase, Wikidata三大知识图谱
  20. 不打开Excel文件读取工作表名(ADOX)

热门文章

  1. 微盟616零售购物节观察:私域流量增值是社交生态的真实价值
  2. java vue20.2.2浏览器_支持 Java 15!Java 开发工具 IntelliJ IDEA 2020.2发布
  3. mysql只能用一个索引_mysql只会使用到一个索引的原因
  4. i350t4和v2区别_I350T4V2 英特尔原装I350网卡 全新千兆电口网卡
  5. python解压文件_Python压缩和解压缩文件(zip/unzip)详解
  6. 散点图 横纵坐标_厉害了,Matplotlib还能这样画散点图!
  7. java中配置bean_Spring中基于Java的配置@Configuration和@Bean用法
  8. coreldraw的线条怎么变成圆头_别再穿到处撞的小白鞋了,这五款春夏小皮鞋,不管怎么搭配都好看...
  9. node与mysql开源_node与mysql的相互使用————node+mysql
  10. python爬虫学习(一) requests模块