用opencv的CV2绘制一个像素大小为100x240的圆角矩形,圆角半径为20。
时间: 2024-10-08 13:19:58 浏览: 63
在OpenCV中,你可以使用`cv2.rectangle()`函数来绘制矩形,但是它并不直接支持绘制带圆角的矩形。不过,我们可以利用OpenCV的轮廓(contour)功能结合一些数学计算来实现这个效果。首先,你需要创建一个边框作为圆角矩形的基础,然后通过计算边界点来应用圆角。
以下是一个示例代码片段:
```python
import cv2
import numpy as np
# 创建100x240的全黑图像
image = np.zeros((240, 100, 3), dtype=np.uint8)
# 宽度和高度减去圆角半径的两倍,因为我们需要画两个半径相同的圆弧
width = 100 - 2 * 20
height = 240 - 2 * 20
# 设置圆角矩形的位置,这里假设左上角坐标为(20, 20)
top_left = (20, 20)
bottom_right = (width + 20, height + 20)
# 计算圆角矩形的四个顶点坐标
vertices = np.array([
[top_left[0], top_left[1]], # 左上角
[(top_left[0] + width), top_left[1]], # 右上角
[(top_left[0] + width), top_left[1] + height], # 右下角
[top_left[0], top_left[1] + height], # 左下角
], dtype=np.int32)
# 使用自定义轮廓绘制
mask = np.zeros_like(image)
cv2.fillPoly(mask, vertices=vertices, color=(255, 255, 255)) # 画白色填充
image[mask == 255] = (0, 255, 0) # 将填充区域替换为绿色,方便看到圆角部分
cv2.imshow('Rounded Rectangle', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们先创建了一个黑色的100x240像素的矩阵,然后通过计算得到四条线段的端点,形成一个矩形轮廓。最后使用`fillPoly()`函数填充白色,再将填充部分替换为绿色,形成了圆角矩形。
阅读全文