Я пытаюсь написать функцию в python, которая возвращает для изображения с шириной w и высотой h массив с формой (h, w), где число по индексу (i, j) дает евклидово расстояние от укажите (i, j) на центр изображения. Код:
def radial_distance(image):
h, w = image.shape[:2]
x, y = center(image)
for i in range(h):
for j in range(w):
image[i,j,:] = np.sqrt((x-i)**2 + (y-j)**2)
return image
В вышеупомянутой функции вызывается другая функция 'center', которая возвращает пару координат центра изображения. Чтобы было понятнее, я публикую здесь функцию 'center':
def center(a):
x, y = a.shape[:2]
return ((x-1)/2,(y-1)/2)
Ошибка, заданная моей функцией "radial_distance":
radial_distance returned array of wrong shape for input array of shape (3, 3, 3)!
, что означает, что radial_distance должна возвращать двумерный массив формы, скажем (3,3), если входное изображение имеет форму (3,3,3). Можно помочь мне направиться в правильном направлении и сэкономить мое время.