使用opencv 图片拼接,python代码,拼接36张图片
时间: 2024-12-23 13:15:58 浏览: 6
在Python中使用OpenCV进行图片拼接,你可以使用`cv2.hconcat()`函数水平拼接图片,或者`cv2.vconcat()`函数垂直拼接。这里是一个简单的例子,假设你有36张图片都在一个目录下,每行9张:
```python
import cv2
import os
# 获取当前目录下的所有图片文件名
image_dir = 'path_to_your_images_directory'
images = [img for img in os.listdir(image_dir) if img.endswith('.jpg') or img.endswith('.png')]
# 将图片分为4行,每行9张
rows = len(images) // 9 + (len(images) % 9 > 0)
output_height, output_width = rows * images[0].shape[:2][0], sum(img.shape[1] for img in images)
# 创建一个空的大图像来存放拼接结果
result = None
for i, image_name in enumerate(images):
# 读取单张图片
img = cv2.imread(os.path.join(image_dir, image_name))
# 如果这是第一个图像,创建大图
if result is None:
result = np.zeros((output_height, output_width, img.shape[2]), dtype=img.dtype)
# 根据图片的位置计算其在大图中的起始位置
y_start = i // 9 * images[0].shape[0]
x_start = i % 9 * img.shape[1]
# 拼接图片到大图上
result[y_start:y_start+img.shape[0], x_start:x_start+img.shape[1]] = img
# 显示或保存拼接后的图片
cv2.imshow('Mosaic', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这个代码将图片按照网格形式拼接,如果你想要其他排列方式,只需调整分割图片的方式即可。
阅读全文