Итак, у меня есть следующий код для изменения размера изображения с использованием интерполяции ближайшего соседа. Решение кажется мне простым, используя 2 цикла for, но я не могу придумать, как это сделать, используя numpy, чтобы избежать этих надоедливых циклов. Вот мой код:
def scale(img, factor):
# Calculate new image shape and create new image with it.
height, width = img.shape[:2]
new_height, new_width = (int(height * factor), int(width * factor))[:2]
scaled_img = np.zeros([new_height, new_width])
# Iterate over all pixels and set their values based on the input image.
for x in range(new_height):
for y in range(new_width):
scaled_img[x, y] = img[int(x / factor), int(y / factor)]
return scaled_img
Любые данные о том, как избежать циклов for?