python - 如何在 Python 中将图像分割成多 block

标签 python image split python-imaging-library crop

我正在尝试使用 PIL 将一张照片分成多 block 。

def crop(Path,input,height,width,i,k,x,y,page):
    im = Image.open(input)
    imgwidth = im.size[0]
    imgheight = im.size[1]
    for i in range(0,imgheight-height/2,height-2):
        print i
        for j in range(0,imgwidth-width/2,width-2):
            print j
            box = (j, i, j+width, i+height)
            a = im.crop(box)
            a.save(os.path.join(Path,"PNG","%s" % page,"IMG-%s.png" % k))
            k +=1

但似乎没有效果。它会分割照片,但分割方式​​不准确(您可以尝试)。

最佳答案

将图像拆分为 MxN 像素的图 block (假设 im 是 numpy.ndarray):

tiles = [im[x:x+M,y:y+N] for x in range(0,im.shape[0],M) for y in range(0,im.shape[1],N)]

如果你想将图像分成四 block :

M = im.shape[0]//2
N = im.shape[1]//2

tiles[0] 持有左上角的瓷砖

关于python - 如何在 Python 中将图像分割成多 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5953373/

相关文章:

python - Pandas MultiIndex Dataframe 到 Excel |第二个索引作为列名

python - Pandas :解析结构化非表格文本中的值

python - 自动使 matplotlib 图像与其他子图标签齐平

ruby-on-rails - Ruby ActiveSupport 数组拆分与字符串拆分

Java Split 正则表达式不工作

javascript - 我正在尝试将文本拆分为段落,它是使用 javascript 以逗号而不是新行或段落进行拆分

python - 了解 decision_function 值

html - 使一个图像落后于另一个

wpf - 在具有超过 1000 个图像项的 WPF 列表框中,缩放图像变慢

c# - os.access 在 IronPython 中为 os.F_OK 模式返回无用值