[trackingdata] avoid div by zero on center of gravity estimation

This commit is contained in:
Jan Grewe 2025-02-24 10:39:18 +01:00
parent 64e75ba4b0
commit 765d381c5d

View File

@ -199,8 +199,11 @@ class TrackingData(QObject):
scores[:, np.setdiff1d(np.arange(scores.shape[1]), nodes)] = 0.0
weighted_coords = self.coordinates(selection=selection) * scores[:, :, np.newaxis]
sum_scores = np.sum(scores, axis=1, keepdims=True)
center_of_gravity = np.sum(weighted_coords, axis=1) / sum_scores
return center_of_gravity
cogs = np.zeros((weighted_coords.shape[0], 2))
val_ids = np.where(sum_scores > 0.0)[0]
cogs[val_ids] = np.sum(weighted_coords[val_ids], axis=1) / sum_scores[val_ids]
return cogs
def animalLength(self, bodyaxis=None):
if bodyaxis is None: