使用cv2.绘制绘制一个像素大小为100*240,圆角半径像素为20的圆角矩形
时间: 2024-10-11 10:14:57 浏览: 150
在OpenCV (cv2) 中,你可以使用 `rectangle` 函数以及 `circle` 函数来绘制一个圆角矩形。首先,你需要创建一个和指定尺寸相符的黑色背景图像,然后添加圆角矩形。
以下是一个简单的步骤描述:
1. 导入必要的库:
```python
import cv2
import numpy as np
```
2. 创建一个100x240的黑底图片:
```python
img = np.zeros((240, 100, 3), dtype=np.uint8)
```
3. 设置圆角矩形的参数,包括左上角坐标、右下角坐标、颜色和圆角半径:
```python
top_left = (50, 50) # 圆角矩形左上角坐标
bottom_right = (90, 190) # 右下角坐标
radius = 20 # 圆角半径
color = (0, 255, 0) # 绿色,可以根据需要调整颜色
# 计算圆心相对于矩形边缘的距离,以便保持正确的圆角对齐
dy = radius * 2
dx = radius * math.sqrt(2)
```
4. 绘制圆角矩形,这里使用 `arcLength` 和 `approxPolyDP` 函数来近似圆角:
```python
start_x, start_y = top_left
end_x, end_y = bottom_right
# 圆弧部分
upper_left_radius = (start_x - dx, start_y - dy)
lower_left_radius = (start_x + dx, start_y - dy)
upper_right_radius = (end_x - dx, end_y + dy)
lower_right_radius = (end_x + dx, end_y + dy)
upper_left_circle = cv2.circle(img, upper_left_radius, radius, color, -1)
lower_left_circle = cv2.circle(img, lower_left_radius, radius, color, -1)
upper_right_circle = cv2.circle(img, upper_right_radius, radius, color, -1)
lower_right_circle = cv2.circle(img, lower_right_radius, radius, color, -1)
# 连接四个点形成矩形
line_points = np.array([[start_x, start_y], [end_x, start_y], [end_x, end_y], [start_x, end_y]], dtype="float32")
approx_line_points = cv2.approxPolyDP(line_points, 0.01*cv2.arcLength(line_points, True), True)
cv2.drawContours(img, [approx_line_points], 0, color, -1)
```
最后,显示结果:
```python
cv2.imshow("Rounded Rectangle", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文