用 OpenCV 绘制 OpenCV 的 logo 图标

此代码参照B站的一位 UP 主的学习视频:https://www.bilibili.com/video/av68735378?p=7

 

直接上代码:

%matplotlib inline

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

# 放置一个白色底的画布
img = np.zeros((Height, W, 3), np.uint8)
# img[0:Height,0:W] = 255
img[:] = 255

# 提前设定画布的长宽以及下方文字大概所占的长度
W = 1000
Height = int(1.3 * W)
D = int(0.2 * W)
# O = (int(0.5 * W), int(0.5 * W))

# 大圆的半径
A = (int(0.5 * W), int(0.5 * W - D))
B = (int(0.5 * W - math.sqrt(3)/2 * D), int(0.5 * W + 0.5 * D))
C = (int(0.5 * W + math.sqrt(3)/2 * D), int(0.5 * W + 0.5 * D))
R1 = int(math.sqrt(3) * 0.4 * D)

# 小圆的半径
R2 = int(math.sqrt(3) * 0.2 * D)

# 旋转的角度
ang = 60

# 绘制大圆
cv.circle(img, A, R1, (255,0,0), -1)
cv.circle(img, B, R1, (0,255,0), -1)
cv.circle(img, C, R1, (0,0,255), -1)

# 绘制小圆
cv.circle(img, A, R2, (255,255,255), -1)
cv.circle(img, B, R2, (255,255,255), -1)
cv.circle(img, C, R2, (255,255,255), -1)

# 绘制椭圆形
cv.ellipse(img, A, (R1,R1), ang, 0, ang, (255,255,255), -1)
cv.ellipse(img, B, (R1,R1), 360 - ang, 0, ang, (255,255,255), -1)
cv.ellipse(img, C, (R1,R1), 360 - 2 * ang, 0, ang, (255,255,255), -1)

# 绘制文本
font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img, 'OpenCV', (100,1000), font, 7, (0,0,0), 25)

plt.imshow(img)
plt.show()

 

注:

因为我是在 Anaconda 的 Jupty Nootbook 上进行代码编辑的,所以代码的第一行  %matplotlib inline  是为了让 matplotlib 绘制出来的图形能够嵌到页面上!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值