openCV入门 Gui特性 3 绘图函数

基本函数

cv2.line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
   #画线段
   #例:cv2.line(img, (10,10), (510,510), (0, 255,0),5)
   #img:在img上绘图        pt1:起点         pt2:终点 
   #color:线的颜色         
   #thickness:线的粗细程度,如果给一个闭合图形设置为 -1,那么这个图形就会被填充
   #其它参数默认即可。
  
cv2.circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
   #画圆
   #例:cv2.circle(img, (50,50), 10, (0,0,255),-1)
   #center:圆心;例如:(0,0)   radius:半径;例如:20
   
cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
   #画矩形
   #例:cv2.rectangle(img,(10,10),(30,40),(134,2,34),1)
   
cv2.ellipse(img,center,axes,angle,startAngle,endAngle,color,thickness=None,lineType=None,shift=None)
   #画椭圆
   #例:cv2.ellipse(img,(256,256),(100,50),0,0,180,(20,213,79),-1) #线型-1表示填充
   #center:中心点位置,axes:长轴和短轴的长度,angle:椭圆沿逆时针选择角度,
   #startAngle:椭圆沿顺时针方向起始角度,endAngle:椭圆沿顺时针方向结束角度
cv2.polylines(img,pts,isClosed,color,thickness=None,lineType=None,shift=None))
   #画多边形
   #pts=np.array([[10,3],[48,19],[60,3],[98,19]],np.int32) #数据类型必须是int32
   # pts=pts.reshape((-1,1,2)) 
  	 	#这里 reshape 的第一个参数为-1, 表明这一维的长度是根据后面的维度的计算出来的。
   		#如果第三个参数是 False,我们得到的多边形是不闭合的(首尾不相连)。
   #cv2.polylines(img,[pts],True,(0,0,255),1) # 图像,点集,是否闭合,颜色,线条粗细

   #cv2.polylines():可以用来画很多条线,只要把要画的线放在一个列表中,将列表传给函数就可以了
   
cv2.putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
   #加字
   #cv2.putText(img, ‘XXX’,(50,300),font,4,(255,0,255),2,cv2.LINE_A4)
   # text:文字内容,org:坐标 , fontFace:字体, fontScale:大小,
   # color:颜色, thickness:字体厚度, lineType:线类型

img = np.zeros(shape, dtype=None, order=’C’)
#构造全0矩阵,,创建窗口画布

例:img=np.zeros((512,512,3), np.uint8)
shape:矩阵大小,窗口画布大小
dtype:数据类型;例如:”np.uint8”
order:可选,数据排列顺序,默认按列排的

np.random.randint(low, high=None, size=None)

np.random.randint:产生[low,high)中的随机整数
low:区间下界;例如:0
high:区间上界;例如:256
size:个数;例如:size = (2,),产生2个随机整数

画线段、矩形、圆、椭圆、多边形、文字

import numpy as np
import cv2 
img=np.zeros((512,512,3), np.uint8)#创建一个黑色的图片
cv2.line(img,(0,0),(511,511),(0,0,255),1)
				#线
   # cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
   				#矩形
   # cv2.circle(img,(447,63), 63, (0,0,255), -1)
   				#圆
   # cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
   				#椭圆
   # pts=np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
   # pts=pts.reshape((-1,1,2))
   # cv2.polylines(img,[pts],True,(0,0,255),1)
   				#多边形
   #font=cv2.FONT_HERSHEY_SIMPLEX
   #cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2)
   				#文字
   #for i in range(0,25):
   		#radius = np.random.randint(5,high = 200)   #生成1个[5,200)的随机半径
   		#color = np.random.randint(0,high = 256,size = (3,)).tolist()   #生成3个[0,256)的随机颜色
   		#pt = np.random.randint(0,high = 300,size = (2,))   #生成2个[0,300)的随机圆心
   		#cv2.circle(img,tuple(pt),radius,color,-1)#画圆
   				#生成随机圆
cv2.imshow('opencv',img)
cv2.waitKey(0)
	#if cv2.waitKey(0)&0XFF ==ord('q'):   break  #设置q键退出窗口
cv2.destroyAllWindows()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@bwang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值