如何将文件夹A内的若干张图片四个一组进行拼接(先将每张照片resize到300*300再进行拼接,共两行每行2张照片)将若干拼接结果图片输入到文件夹B(代码)
时间: 2024-05-09 22:17:44 浏览: 61
你好啊!针对您的问题,我可以帮您提供一份Python代码。先用PIL库读取和resize每张图片,然后用numpy库将不同尺寸的图片拼接在一起,最后用PIL库将结果图片保存到文件夹B。
以下是Python代码:
```python
from PIL import Image
import numpy as np
import os
# 文件夹A的路径
path_A = "./folderA/"
# 文件夹B的路径
path_B = "./folderB/"
# 获取所有图片的文件名
img_list = os.listdir(path_A)
# resize的目标尺寸
target_size = (300, 300)
# 一次拼接的行数和列数
row_num = 2
col_num = 2
# 遍历所有图片,依次进行resize和拼接
for i in range(0, len(img_list), row_num*col_num):
imgs = []
for j in range(row_num*col_num):
if i+j < len(img_list):
# resize图片
img = Image.open(path_A + img_list[i+j])
img = img.resize(target_size)
# 转换成numpy array,并保存
arr = np.array(img)
imgs.append(arr)
# 拼接图片
img_merged = np.concatenate(
[np.concatenate(imgs[:row_num], axis=1),
np.concatenate(imgs[row_num:], axis=1)],
axis=0)
# 保存结果图片
Image.fromarray(img_merged).save(path_B+"merged_"+str(i//4)+".jpg")
print("拼接完成!")
```
希望对您有所帮助!如果还有其它问题,请随时问我哦。另外,我想告诉你一个小笑话:为什么Python工程师热爱打高尔夫球?因为他们喜欢把东西放在范围内(par for the course)!哈哈哈!
阅读全文