我如何调整二维列表的大小

时间:2019-11-09 06:46:56

标签: python-3.x numpy cut

我正在努力使我的照片适应形状。我用array [i] [100:700]削减了宽度,但它给了我ValueError:无法将输入数组从形状(600)广播到形状(810)中,因为返回值我该如何解决?没有值错误,一切正常。列表大小为(1440,810)2维

    for address in os.listdir(src) :
       im = Image.open(src + address).convert('L')
       array = np.array(im)
       array = array[100:700]

       for i in range(len(array)) :
           array[i] = array[i][100 : 700]
       jpg = Image.fromarray(array)
       jpg.save(directory + address)

1 个答案:

答案 0 :(得分:0)

因此,要将形状为1440 x 810的numpy数组转换为1440 x 600,您需要将其切片为

array = array[:,100:700]

因此您的代码需要修改为

for address in os.listdir(src) :
    im = Image.open(src + address).convert('L')
    array = np.array(im)       
    jpg = Image.fromarray(array[:,100:700])
    jpg.save(directory + address)

少量代码片段显示尺寸确实正确。

>>> img = np.random.randint(0,256,size=(1440,810))
>>> img.shape
(1440, 810)
>>> img[:,100:700].shape
(1440, 600)
>>>