绘制200*300的图像在其中绘制嵌套的矩形,矩形之间及最外面矩形与图形边缘的间距2像素为10,使用open cv
时间: 2024-09-23 22:05:40 浏览: 80
在OpenCV中,你可以使用Python的`cv2`库来创建一个200x300的空白图像,并通过循环嵌套的方式来绘制矩形。以下是基本步骤:
首先,你需要导入所需的库:
```python
import cv2
import numpy as np
```
然后,定义图像尺寸和颜色空间:
```python
img_width = 200
img_height = 300
padding = 10
color = (0, 255, 0) # 绿色作为示例,你可以选择其他颜色
```
接着,创建一个新的空白灰度图像并转换为彩色图像,因为OpenCV默认处理的是BGR格式:
```python
img = np.zeros((img_height + padding * 2, img_width + padding * 2, 3), dtype=np.uint8)
img[padding:-padding, padding:-padding] = 255 # 创建一个白色背景,便于看到矩形
img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
```
接下来,使用嵌套的for循环,每层循环创建一个矩形,并计算内边距(矩形宽度减去4,因为需要留出两边各2像素的间隔):
```python
num_rects = 4 # 假设你想有4个矩形
rect_sizes = [(width, height) for width in range(30, img_width - 60, 30) for height in range(20, img_height - 40, 20)] # 示例大小
for i, rect_size in enumerate(rect_sizes):
x_start = padding + i % num_rects * (img_width // num_rects) + rect_size[0]
y_start = padding + i // num_rects * (img_height // num_rects) + rect_size[1]
cv2.rectangle(img, (x_start, y_start), (x_start + rect_size[0], y_start + rect_size[1]), color, thickness=2)
```
最后,显示或保存结果:
```python
cv2.imshow("Nested Rectangles", img)
cv2.waitKey(0) # 等待用户按键
cv2.destroyAllWindows()
```
阅读全文