使用cv2绘制一个圆角半径为20的矩形
时间: 2024-10-08 09:08:27 浏览: 39
一个简单的圆角矩形算法demo
4星 · 用户满意度95%
在OpenCV中,虽然`cv2.rectangle()`函数本身不直接提供绘制圆角矩形的功能,但你可以通过组合多个基本图形来创建。这里我们可以使用`cv2.circle()`或`cv2.ellipse()`来实现圆角矩形的效果。下面是一个例子,假设你想在一张空白图像上绘制一个宽高为100像素,圆角半径为20像素的矩形:
```python
import cv2
import numpy as np
# 创建一个新的空白图像
image = np.zeros((400, 400, 3), dtype=np.uint8)
# 定义矩形的位置、尺寸和圆角半径
x, y = 50, 50 # 左上角坐标
width, height = 100, 100
radius = 20
# 分别计算四个圆弧起点和终点坐标
start_points = [(x+radius, y), (x+width-radius, y), (x+width, y+height-radius), (x, y+height)]
end_points = [(x+radius, y+height), (x+width-radius, y+height), (x+width, y+height-radius), (x, y+radius)]
# 遍历每一个角,绘制小圆形
for start, end in zip(start_points, end_points):
cv2.ellipse(image, start, (2*radius, 2*radius), 0, 0, 360, (255, 255, 255), -1) # 透明填充
# 在中间区域填充矩形颜色
cv2.rectangle(image, (x, y), (x+width, y+height), (0, 255, 0), -1) # 绿色矩形,负数厚度表示填充
# 显示结果
cv2.imshow('Rounded Rectangle', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文