python绘图函数

来源:互联网 发布:开的淘宝店怎么找不到 编辑:程序博客网 时间:2024/06/09 13:57

2.3绘图函数

标签: opencvpython官方教程
 4802人阅读 评论(0) 收藏 举报
 分类:

别的不说,首先创建灰度都为0 的彩图

[python] view plain copy
  1. import numpy as np  
  2. import cv2  
  3. # Create a black image  
  4. img = np.zeros((512,512,3), np.uint8)  
np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型

所谓大小,512,512是指图片占像素为512x512,3则是指BGR三种颜色

uint8就是每种颜色都是0到255


画直线cv2.line()

[python] view plain copy
  1. img = cv2.line(img,(0,0),(511,511),(255,0,0),5)  
cv2.line有五个参数,图片名称、起点坐标、终点坐标、颜色、线宽

图片名称就是你要在哪张图片里画直线,这里是刚才创建的img

起点坐标和终点坐标都是二维点,(0,0)和(511,511)

颜色对应BGR,(255,0,0)是纯蓝色

线宽是线的粗细,这里选为5,不写的话默认是1


画矩形cv2.rectangle()

[python] view plain copy
  1. img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)  
cv2.rectangle五个参数,图片名称、两个对角点坐标、颜色数组、线宽

与直线只有一点不同就是输入的两坐标点不是起点和终点而是对角线的起点和终点。机械的孩子应该懂两点确定矩形


画圆cv2.circle()

[python] view plain copy
  1. img = cv2.circle(img,(447,63), 63, (0,0,255), -1)  
cv2.circle五个参数,图片名称、圆心坐标、半径、颜色数组、线宽

线宽为-1对封闭图形来说是内部填满,所以画出来的就是红色的圆面而不是圆形。

上面一点对所有封闭图形都适用,包括矩形、圆、椭圆、多边形等


画椭圆cv2.ellipse

[python] view plain copy
  1. img = cv2.ellipse(img,(256,256),(100,50),0,0,180,(0,255,0),-1)  
稍稍复杂,有八个参数。图像、中心坐标、长轴短轴、旋转角度、显示的部分、颜色数组、线宽

中心坐标(256,256)

长轴短轴是(100,50)指长轴长100,短轴长50

旋转角度是指椭圆逆时针旋转多少度,这里是0

显示的部分是用极坐标中的角度来刻画的一段区域,从长轴顺时针(顺!)开始数,第一个是起始角度,设为0;第二个是终点角度,设为180.这两个参数的作用是只显示椭圆在长轴开始0到180度之内的部分

线宽仍是-1,虽然这里显示的椭圆是0,180即下半椭圆,但是它会用Green填满下半椭圆


画多边形cv2.polylines()

[python] view plain copy
  1. pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)  
  2. pts = pts.reshape((-1,1,2))  
  3. img = cv2.polylines(img,[pts],True,(0,255,255),3)  
polylines有五个参数,图像、顶点集、是否闭合、颜色数组、线宽

pts是用numpy中的array函数建立的向量集,即点集,最后的np.int32是说点的坐标数据类型是int32

reshape是什么意思不太懂,百度了一会据说是跟通道有关,有点深了以后再研究

在polylines中的True和False代表多边形是否闭合,True是闭合,False是有一条边空出来,不闭合


写字符cv2.putText()

[python] view plain copy
  1. font = cv2.FONT_HERSHEY_SIMPLEX  
  2. cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)  
八个参数,图片、字符串、坐标、字体、字号、颜色数组、线宽、线条种类

字体有很多种,详情看这里http://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html?highlight=puttext#initfont

线条种类看这里,这个应该在画直线那一块讲的http://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html?highlight=puttext#line

虽然我也不知道这LINE_AA是啥,百度说是锯齿线


那么就把所有代码连起来,召唤神龙

[python] view plain copy
  1. cv2.imshow('demo',img)  
  2. cv2.waitKey(0)  

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 脚受伤后肿了怎么办 摔到了腿受伤了怎么办 骑车摔倒了肿了怎么办 生活大冒险老婆失踪了怎么办 手机qq图裂了怎么办 qq发的图裂了怎么办 抖音账号搬运多怎么办 别人搜不到我QQ怎么办 qq号被限制解封怎么办 买的桌子会晃怎么办 车子座椅皮坏了怎么办 裤子被椅子刮了怎么办 脚麻了被别人动怎么办 毛孔又粗又黑怎么办 手臂睡觉压麻了怎么办 睡觉压的胳膊麻怎么办 摔跤摔到腰肿了怎么办 牛奶喝多了拉稀怎么办 doc文档下载是乱码怎么办 家人被教练技术骗了怎么办 十个月宝宝不爱喝水怎么办 离婚后孩子找爸爸怎么办 离婚后孩子要找爸爸怎么办 断奶期间胸涨的难受怎么办 断奶胸涨的很疼怎么办 过了麦季身上老痒怎么办 过麦时候皮肤痒怎么办 颈部起红疙瘩痒怎么办 脚底痒身上痒该怎么办 生完孩子屁股疼怎么办 pr打开工程文件无响应怎么办 娃娃和老师有隔阂了怎么办 大人字写得不好怎么办 不会写好看的字怎么办 无限量流量限速了怎么办 长期化妆后皮肤变黄怎么办 手机密码忘记了打不开怎么办 手机解压包不知道密码怎么办 手机屏图标没了怎么办 b站页面卡顿怎么办 被全景视觉骗了怎么办?