Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试使用将图像拆分为四,但我的脚本没有';我什么也不做_Python_Image_Python Imaging Library - Fatal编程技术网

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

我想用python将一个图像分成四部分。我找到了以下脚本:


我正在运行我的脚本,但什么都没有发生(没有控制台日志,什么都没有)。怎么了?我缺少什么?

您要转换的文件的文件名是什么?它们是否都命名为
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)))