opencv的中文手册学习(三)

opencv的中文手册学习(三)

练习题:尝试使用OpenCV中可用的绘图功能创建OpenCV的徽标。

实现的思路步骤:
  • 首先你需要找到一张opencv的标志 img
  • 然后设定区域大小绘图区域(600, 739),通过mspaint找到每个圆圈的区域(外直径280的圆,内直接110圆,开口,分别为下,右上,上 60度角)
  • 难点处理,就是这三个圆的都有一个不同的缺口 ,并且是空心的(猜测可以使用两个圆的叠加)处理是使用cv.ellipsec函数处理,画外面的弧线,里面有白色圆心遮盖。
  • 最后就是文字处理设置。
技术准备:

主要用到的函数:cv.circle , cv.putText , cv.ellipsec的函数学习

字体参见:文字支持

代码实现:

import numpy as np
import cv2 as cv
# 基础数据 整体大小(600 * 740)
# 圆形直径 分别为 280 110 居中 

# 创建白色的图像
img = np.ones((740, 600, 3), np.uint8)*255

# 绘制第一个圆形 圆心计算 600 div 2 =300  280 div 2 =140 )
# 图片 (圆心) (短轴长,长轴长),旋转角度,旋转角度,开口大小角度,(颜色),(线条粗细,-1为实心)
cv.ellipse(img, (300, 140), (140, 140), 120, 0, 300, (0, 0, 255), -1)
cv.circle(img, (300, 140), 55, (255, 255, 255), -1)

# 下面两个圆形 两个圆的间距(600 - 280 - 280 = 40 )
# (140, 280 + 140) (140 + 280 + 40,280 + 140)
cv.ellipse(img, (140, 420), (140, 140), 0, 0, 300, (0, 255, 0), -1)
cv.circle(img, (140, 420), 55, (255, 255, 255), -1)

cv.ellipse(img, (460, 420), (140, 140), 300, 0, 300, (255, 0, 0), -1)
cv.circle(img, (460, 420), 55, (255, 255, 255), -1)

# 向图像添加文本
font = cv.FONT_HERSHEY_COMPLEX

# 图像,文字,位置,字体  字体大小 ,颜色  线条 ()
cv.putText(img, 'OpenCV', (0, 680), font, 5, (0, 0, 0), 10, cv.LINE_AA)

cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()

实现趣事

在实现过程,我发现opencv的图标中还藏着一个正三角形,所有我将开口的角度取成300 = 360 - 60。位置的起始位置也是通过这个为依据计算的。感觉图片位置的还原度还是十分的高。只是字体我一直没有找到一个特别合适的。不能再过多的消耗时间了。只是在上面附加了,python支持的字体。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值