Это может быть глупый вопрос, но...
У меня есть несколько тысяч изображений, которые я бы хотел загрузить в Python, а затем преобразовать в массивы numpy. Очевидно, это происходит медленно. Но на самом деле меня интересует только небольшая часть каждого изображения. (Та же часть, всего 100x100 пикселей в центре изображения.)
Есть ли способ загрузить только часть изображения, чтобы ускорить работу?
Вот пример кода, в котором я генерирую несколько образцовых изображений, сохраняю их и загружаю обратно.
import numpy as np
import matplotlib.pyplot as plt
import Image, time
#Generate sample images
num_images = 5
for i in range(0,num_images):
Z = np.random.rand(2000,2000)
print 'saving %i'%i
plt.imsave('%03i.png'%i,Z)
%load the images
for i in range(0,num_images):
t = time.time()
im = Image.open('%03i.png'%i)
w,h = im.size
imc = im.crop((w-50,h-50,w+50,h+50))
print 'Time to open: %.4f seconds'%(time.time()-t)
#convert them to numpy arrays
data = np.array(imc)