如何使用OpenCV创建一个300x300像素的画布,并在其上绘制带有不同颜色环状箭靶(中间内圈为红色,其余环为蓝色),同时在各个环上分别标注环数,最内环表示9,最远环表示6?
时间: 2024-10-21 19:10:45 浏览: 36
在OpenCV中,你可以使用`cv2.circle()`函数来绘制圆环,然后利用`cv2.putText()`来添加文字标签。下面是一个简化的步骤说明:
1. 首先,你需要导入所需的库:
```python
import cv2
import numpy as np
```
2. 创建一个300x300的黑底画布:
```python
img = np.zeros((300, 300, 3), dtype=np.uint8)
img[:] = (0, 0, 0) # 黑色背景,可以设置为其他颜色
```
3. 定义环的颜色和半径范围,以及环上的文字标签:
```python
ring_radii = [90, 150] # 红色内环半径较小,蓝色外环半径较大
text_labels = ['9', '6'] # 标签内容
colors = [(255, 0, 0), (0, 0, 255)] # 红色和蓝色
```
4. 使用`for`循环绘制每个环并添加文本:
```python
for i, radius in enumerate(ring_radii):
thickness = 3 if i == 0 else -1 # 内圈厚一些,外圈线型较细
cv2.circle(img, (img.shape[1] // 2, img.shape[0] // 2), radius, colors[i], thickness)
label_position = (img.shape[1] // 2 + radius * 1.1, img.shape[0] // 2 - 20 * (i+1)) # 文本位置
cv2.putText(img, text_labels[i], label_position, cv2.FONT_HERSHEY_SIMPLEX, 1, colors[i], 2, cv2.LINE_AA)
```
5. 最后,显示图像:
```python
cv2.imshow('Ring Target', img)
cv2.waitKey(0) # 显示图片,按任意键关闭
cv2.destroyAllWindows()
```
阅读全文