opencv 实验:绘制一个像素大小为100×240的圆角矩形,圆角半径像素为20
时间: 2024-09-25 15:11:02 浏览: 141
在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像素的圆角矩形,圆角半径为20像素:
```python
import cv2
import numpy as np
# 定义图像尺寸和圆角半径
img_height = 240
img_width = 100
corner_radius = 20
# 创建全黑的图像
img = np.zeros((img_height, img_width), dtype='uint8')
# 定义圆角矩形的中心点、长度和宽度
center = (img_width // 2, img_height // 2)
axes = (img_width, img_height) # 长度和宽度是原始的正方形尺寸
angle = 0 # 圆角矩形不需要旋转
# 使用cv2.ellipse()绘制圆角矩形
cv2.ellipse(img, center, axes, angle, 0, 360, 255, -1) # 最后两个参数分别是填充颜色和是否封闭轮廓
# 显示结果
cv2.imshow("Circular Rectangle", img)
cv2.waitKey(0) # 等待用户按键
cv2.destroyAllWindows()
```
阅读全文