opencv 以九块640,360 依次覆盖1920,1080的图像,
时间: 2023-07-27 21:19:00 浏览: 179
如果要使用 OpenCV 将九个 640x360 的小块依次覆盖一个 1920x1080 的图像,可以按照以下步骤进行:
1. 读取原始图像
2. 创建一个空白的 1920x1080 的画布
3. 读取九个小块的图像,并将它们依次复制到画布上
4. 保存合成后的图像
以下是使用 Python 和 OpenCV 将九个 640x360 的小块依次覆盖一个 1920x1080 的图像的示例代码:
```python
import cv2
import numpy as np
# 读取原始图像
img = cv2.imread('example.jpg')
# 创建一个空白的 1920x1080 的画布
canvas = np.zeros((1080, 1920, 3), dtype=np.uint8)
# 读取九个小块的图像,并将它们依次复制到画布上
for i in range(3):
for j in range(3):
x1, y1, x2, y2 = [640*j, 360*i, 640*(j+1), 360*(i+1)]
small_img = cv2.imread(f'small_{i}{j}.jpg')
canvas[y1:y2, x1:x2] = small_img
# 保存合成后的图像
cv2.imwrite('merged.jpg', canvas)
```
在上述代码中,我们首先使用 `cv2.imread()` 函数读取原始图像,然后创建一个空白的 1920x1080 的画布。接着使用两个 for 循环遍历 9 个小块,根据小块的位置读取对应的小块图像,并将它们复制到画布上。最后使用 `cv2.imwrite()` 函数将合成后的图像保存为新的图像。
阅读全文