У меня есть 2 массива, выборка и данные.Данные будут содержать координаты эллипса.Все точки внутри эллипса будут белыми, а снаружи - черными.
Теперь я хочу вычислить пространственное расстояние между моим массивом выборок и массивом данных (массив эллипсов), учитывая определенный центр эллипса (x, y).Все возможные точки центра эллипса хранятся в другом массиве center_points.
Однако, когда я запускаю код, я получаю пустой список, но ожидаю список пространственных расстояний.
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial import distance
center_points = []
def combinations(x,y):
dx = 2
dy = 2
return x-dx,y-dy
for x in range(10):
for y in range(10):
center_points.append(combinations(x,y))
sample = np.random.rand(100,100)
#spatial distance
spatial_distance = []
data = np.empty((100,100))
def ellipse(x,y):
if (x**2+y**2/3)>300:
return 0
else:
return 1
def translate(x, y, DX, DY):
return (x- DX, y - DY)
def rotate(m, n):
theta = np.radians(45)
matrix = np.array([[np.cos(theta), -np.sin(theta)], [np.sin(theta), np.cos(theta)]])
return np.dot(matrix, (m,n))
for i in range(data.shape[0]):
for j in range(data.shape[1]):
data[i][j]= ellipse(i,j)
data[i][j]= rotate(i,j)
for a,b in center_points:
data.append((translate(i,j,a,b)))
spatial_distance.append(distance.hamming(data,sample))