У меня есть около 10000 изображений в оттенках серого в массиве numpy (10000 x 480 x 752) и вы хотите изменить их размер с помощью функции imresize от scipy.misc. Он работает с построением цикла for вокруг всех изображений, но это занимает 15 минут.Изменение размера партии изображений в numpy
images_resized = np.zeros([0, newHeight, newWidth], dtype=np.uint8)
for image in range(images.shape[0]):
temp = imresize(images[image], [newHeight, newWidth], 'bilinear')
images_resized = np.append(images_resized, np.expand_dims(temp, axis=0), axis=0)
Есть ли способ сделать это быстрее с помощью подобной функции? Я посмотрел в apply_along_axis
def resize_image(image):
return imresize(image, [newHeight, newWidth], 'bilinear')
np.apply_along_axis(lambda x: resize_image(x), 0, images)
, но это дает ошибку
'arr' does not have a suitable array shape for any mode
.
Вы должны указать код, по которому вы можете изменить размер изображений, если хотите, чтобы кто-нибудь вам помог .. см. Https://stackoverflow.com/help/mcve – hruske
Я не уверен, что это то, что вы ищете, но взгляните на это: http://stackoverflow.com/questions/13242382/resampling-a-numpy-array-representing-an-image – MaxU
У вас есть определенный набор значений для 'newHeight',' newWidth', который вы работают? Вы понижаете дискретизацию или повышаете выборку, или это может быть так или иначе? – Divakar