我正在努力使我的照片适应形状。我用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)
答案 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)
>>>