31 matrix = np.zeros((np.prod(destination_dimensions), np.prod(source_dimensions)))
33 for i
in range(destination_dimensions[0]):
34 for j
in range(destination_dimensions[1]):
35 for k
in range(destination_dimensions[2]):
36 destinationVolume = np.array([i, j, k])
40 np.maximum(corner_source_volume, 0, corner_source_volume)
42 for l
in range(corner_source_volume[0], corner_source_volume[0] + 4):
43 for n
in range(corner_source_volume[1], corner_source_volume[1] + 4):
44 for m
in range(corner_source_volume[2], corner_source_volume[2] + 4):
45 source_volume = np.array([l, n, m])
49 axisWithSourceOutsidePatch = 0
52 axisWithSourceOutsidePatch += 1
54 axisWithSourceOutsidePatch += 1
55 isFromUnitialisedDiagonal = (axisWithSourceOutsidePatch > 1)
62 distance = np.abs(normalised_destination_position[d] - normalised_source_position[d])
64 weight *= np.maximum(distance, 0.0)
66 if isFromUnitialisedDiagonal:
72 matrix[linearised_destination, linearised_source] += weight