Я пытаюсь сшить вместе около 50 изображений (все одного размера 287x287). В частности, должно быть 25 изображений в верхней строке и 25 изображений в нижней строке, а также существует небольшое расстояние между каждыми двумя изображениями.
Во время своих попыток я столкнулся с двумя трудностями:
Первая проблема заключается в том, что 25 изображений находятся в папке с их именем 'prefix-70',...,'prefix-94'
, а остальные 25 изображений находятся в другой папке с тем же именем 'prefix-70',...,'prefix-94'
. Я не знаю, как им в Python без конфликтов.
Вторая проблема заключается в том, что я написал следующий код для чтения изображений одной папки для формирования строки, но он выводит столбец.
#!/usr/bin/python3.0
#encoding=utf-8
import numpy as np
from PIL import Image
import glob,os
if __name__=='__main__':
#prefix=input('Input the prefix of images:')
prefix = 'prefix'
files=glob.glob(prefix+'-*')
num=len(files)
filename_lens=[len(x) for x in files] #length of the files
min_len=min(filename_lens) #minimal length of filenames
max_len=max(filename_lens) #maximal length of filenames
if min_len==max_len:#the last number of each filename has the same length
files=sorted(files) #sort the files in ascending order
else:
index=[0 for x in range(num)]
for i in range(num):
filename=files[i]
start=filename.rfind('-')+1
end=filename.rfind('.')
file_no=int(filename[start:end])
index[i]=file_no
index=sorted(index)
files=[prefix+'-'+str(x)+'.png' for x in index]
print(files[0])
baseimg=Image.open(files[0])
sz=baseimg.size
basemat=np.atleast_2d(baseimg)
for i in range(1,num):
file=files[i]
im=Image.open(file)
im=im.resize(sz,Image.ANTIALIAS)
mat=np.atleast_2d(im)
print(file)
basemat=np.append(basemat,mat,axis=0)
final_img=Image.fromarray(basemat)
final_img.save('merged.png')
Я думаю, что я попал в неправильный путь... Как я могу их правильно сшить? Любое предложение приветствуется.
axis=0
наaxis=1
. - person Junuxx   schedule 17.03.2017