Python 尝试使用将图像拆分为四,但我的脚本没有';我什么也不做
我想用python将一个图像分成四部分。我找到了以下脚本:Python 尝试使用将图像拆分为四,但我的脚本没有';我什么也不做,python,image,python-imaging-library,Python,Image,Python Imaging Library,我想用python将一个图像分成四部分。我找到了以下脚本: 我正在运行我的脚本,但什么都没有发生(没有控制台日志,什么都没有)。怎么了?我缺少什么?您要转换的文件的文件名是什么?它们是否都命名为img-.tif?因为这是这个脚本只会涉及的文件名类型。换句话说,filelist将为空,除非当前目录中的某些图像与传递给glob的模式匹配-因此for循环中的代码将永远不会执行,并且不会使用其中的硬编码图像文件名。 from PIL import Image import os import glob
我正在运行我的脚本,但什么都没有发生(没有控制台日志,什么都没有)。怎么了?我缺少什么?您要转换的文件的文件名是什么?它们是否都命名为
img-.tif
?因为这是这个脚本只会涉及的文件名类型。换句话说,filelist
将为空,除非当前目录中的某些图像与传递给glob
的模式匹配-因此for
循环中的代码将永远不会执行,并且不会使用其中的硬编码图像文件名。
from PIL import Image
import os
import glob
def crop(im,height,width):
# im = Image.open(infile)
imgwidth, imgheight = im.size
for i in range(imgheight//height):
for j in range(imgwidth//width):
# print (i,j)
box = (j*width, i*height, (j+1)*width, (i+1)*height)
yield im.crop(box)
if __name__=='__main__':
imgdir = './'
basename = 'img-*.tif'
filelist = glob.glob(os.path.join(imgdir,basename))
for filenum,infile in enumerate(filelist):
# infile='/Users/alex/Documents/PTV/test_splitter/cal/Camera 1-1-9.tif'
print filenum # keep the numbers as we change them here
print infile
im = Image.open('./test.png')
imgwidth, imgheight = im.size
print 'Image size is: %d x %d ' % (imgwidth, imgheight)
height = imgheight/2
width = imgwidth/2
start_num = 0
for k,piece in enumerate(crop(im,height,width),start_num):
# print k
# print piece
img=Image.new('L', (width,height), 255)
# print img
img.paste(piece)
path = os.path.join("cam%d_1%05d.tif" % (int(k+1),filenum))
img.save(path)
os.rename(path,os.path.join("cam%d.1%05d" % (int(k+1),filenum)))