opencv 实验:绘制一个像素大小为100×240的圆角矩形,圆角半径像素为20
时间: 2024-09-25 12:11:02 浏览: 171
在OpenCV库中,你可以使用`cv2.ellipse()`函数来绘制一个带圆角的矩形,也称为椭圆型矩形。以下是一个简单的Python示例,演示如何创建一个100x240像素的圆角矩形,圆角半径为20像素:
```python
import cv2
import numpy as np
# 创建一个黑色背景的图像
img = np.zeros((240, 100, 3), dtype=np.uint8)
# 定义圆角矩形的位置、大小以及圆角半径
center = (50, 60) # 圆心坐标
axes = (40, 80) # 长轴和短轴长度
angle = 0 # 方向,这里默认水平方向
radius = 20 # 圆角半径
# 使用椭圆函数绘制圆角矩形
cv2.ellipse(img, center, axes, angle, start_angle=0, end_angle=360, color=(255, 255, 255), thickness=-1) # -1表示填充整个形状
# 显示结果
cv2.imshow('Circular Rectangle', img)
cv2.waitKey(0) # 等待用户按键
cv2.destroyAllWindows() # 关闭窗口
相关问题
用opencv的CV2绘制一个像素大小为100x240的圆角矩形,圆角半径为20。
在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()`函数填充白色,再将填充部分替换为绿色,形成了圆角矩形。
使用OpenCV 绘制一个像素大小为100*240的圆角矩形,圆角半径像素为20
在OpenCV中,你可以使用`cv2.ellipse()`函数来绘制圆角矩形。这个函数需要提供几个关键参数,包括中心点坐标、长轴长度、短轴长度、旋转角度、开始弧度和结束弧度以及颜色等信息。
以下是创建一个100x240像素圆角矩形的示例代码:
```python
import cv2
import numpy as np
# 定义矩形的尺寸和圆角半径
height = 240
width = 100
radius = 20
# 创建图像(这里假设初始图片是全黑的)
img = np.zeros((height, width), dtype='uint8')
# 计算圆角矩形的实际起始和结束弧度
start_angle = -90
end_angle = 90
# 使用cv2.ellipse绘制圆角矩形
cv2.ellipse(img,
(int(width / 2), int(height / 2)), # 圆心点
(radius, radius), # 长轴和短轴长度(等于圆角半径)
start_angle, end_angle, # 起始和结束弧度
0, # 开始线条的角度(0表示从垂直方向开始)
360, # 线条持续的角度
(255, 0, 0), # 颜色,这里是蓝色
-1) # -1表示填满整个轮廓
# 显示结果
cv2.imshow("Round Rectangle", img)
cv2.waitKey(0) # 等待按键,按任意键关闭窗口
cv2.destroyAllWindows()
```
阅读全文