Opencv基本几何形状绘制

绘制基本图形
本文详细介绍如何使用OpenCV库在空白画布上绘制各种基本图形,包括直线、矩形、圆形、椭圆等,并提供了丰富的代码示例,展示了如何设置图形的位置、尺寸、颜色和线宽。
  全0矩阵
zeros(shape,dtype=None,order='C')

shape:矩阵大小        dtype:数据类型      order:数据排列顺序,默认按列排序

   直线
cv2.line(img,pt1,pt2,color,thickness=1,line_type=8 shift=0) 

主要参数 ——pt1:直线起点    pt2:直线终点    color:线颜色   thickness:线宽   

   矩形
cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)

主要参数——pt1:左上角起点  pt2:右下角终点  color:颜色  thickness:线宽

  圆形
cv2.circle(img, center, radius, color, thickness=None, lineType=None, shift=None)

主要参数——center:圆心  radius:半径  color:颜色  thickness:线宽

  椭圆
cv2.ellipse(img, center, axes, angle, start_angle, end_angle, color, thickness=1, line_type=8, shift=0)

主要参数——center:圆心   axes:(长轴长度,短轴长度)  angle:偏转角度 

                     start_angle:椭圆弧起始角度     end_angle:椭圆弧终止角度

示例:

矩阵:

import cv2
import numpy as np
import matplotlib.pyplot as plt

canvas = np.zeros((300,300,3),dtype="uint8")
#plt.imshow(canvas)
#plt.show()
cv2.imshow("Canvas",canvas)
cv2.waitKey(0)

直线:

import cv2
import numpy as np
import matplotlib.pyplot as plt

canvas = np.zeros((300,300,3),np.uint8)

##生成从(0,0)到(200,167)的线宽3的白色直线
cv2.line(canvas,(0,0),(200,167),255,3)  ##其实对应的np.zeros((300,300),np.uint8)
###生成颜色为(155,155,155)的彩色直线
cv2.line(canvas,(2,4),(100,300),(155,155,155),5)
cv2.imshow("Canvas",canvas)
cv2.waitKey(0)

矩形:

import cv2
import numpy as np
import matplotlib.pyplot as plt

canvas = np.zeros((300,300,3),np.uint8)

##生成从(0,0)到(200,167)的线宽3的白色直线
cv2.rectangle(canvas,(20,20),(200,200),(55,255,155),5)
cv2.imshow("Canvas",canvas)
cv2.waitKey(0)

圆形:

import cv2
import numpy as np
import matplotlib.pyplot as plt

canvas = np.zeros((300,300,3),np.uint8)

##生成从(0,0)到(200,167)的线宽3的白色直线
cv2.circle(canvas,(150,150),50,(55,255,155),5)
cv2.imshow("Canvas",canvas)
cv2.waitKey(0)

椭圆:

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = np.zeros((512,512,3),np.uint8)#生成一个空彩色图像
cv2.ellipse(img,(256,256),(150,100),0,0,180,250,-1)
#注意最后一个参数-1,表示对图像进行填充,默认是不填充的,如果去掉,只有椭圆轮廓了
plt.imshow(img,'brg')
plt.show()

任意位置任意半径圆:

import cv2
import numpy as np
from matplotlib import pyplot as plt

canvas = np.zeros((400,400,3),np.uint8)
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(canvas,tuple(pt),radius,color,-1)#画圆

plt.imshow(canvas,'brg')
plt.show()

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值