[trackingdata] fix orientation estimation
This commit is contained in:
parent
256e9caa2f
commit
2bba098b77
@ -166,10 +166,11 @@ class TrackingData(QObject):
|
|||||||
lengths = np.sum(np.sqrt(np.sum(np.diff(bodycoords, axis=1)**2, axis=2)), axis=1)
|
lengths = np.sum(np.sqrt(np.sum(np.diff(bodycoords, axis=1)**2, axis=2)), axis=1)
|
||||||
return lengths
|
return lengths
|
||||||
|
|
||||||
def orientation(self, head_node=1, tail_node=5):
|
def orientation(self, head_node=0, tail_node=5):
|
||||||
bodycoords = self.coordinates()[:, [head_node, tail_node], :]
|
bodycoords = self.coordinates()[:, [head_node, tail_node], :]
|
||||||
vectors = bodycoords[:, 1, :] - bodycoords[:, 0, :]
|
vectors = bodycoords[:, 1, :] - bodycoords[:, 0, :]
|
||||||
orientations = np.arctan2(vectors[:, 1], vectors[:, 0])
|
orientations = np.arctan2(vectors[:, 0], vectors[:, 1]) * 180 / np.pi
|
||||||
|
orientations[orientations < 0] += 360
|
||||||
return orientations
|
return orientations
|
||||||
|
|
||||||
def bendedness(self, bodyaxis=None):
|
def bendedness(self, bodyaxis=None):
|
||||||
@ -184,7 +185,7 @@ class TrackingData(QObject):
|
|||||||
numpy.ndarray
|
numpy.ndarray
|
||||||
Array of mean absolute deviations of the body axis points from the head-tail vector.
|
Array of mean absolute deviations of the body axis points from the head-tail vector.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if bodyaxis is None:
|
if bodyaxis is None:
|
||||||
bodyaxis = [0, 1, 2, 5]
|
bodyaxis = [0, 1, 2, 5]
|
||||||
bodycoords = self.coordinates()[:, bodyaxis, :]
|
bodycoords = self.coordinates()[:, bodyaxis, :]
|
||||||
@ -241,10 +242,20 @@ def main():
|
|||||||
count += 1
|
count += 1
|
||||||
return dists
|
return dists
|
||||||
|
|
||||||
datafile = PACKAGE_ROOT / "data/merged_small.pkl"
|
def plot_skeleton(positions):
|
||||||
|
skeleton_grid = [(0, 1), (1, 2), (1, 3), (1, 4), (2, 5)]
|
||||||
|
colors = ["tab:red"]
|
||||||
|
colors.extend(["tab:blue"]*5)
|
||||||
|
plt.scatter(positions[:, 0], positions[:, 1], c=colors)
|
||||||
|
for si, ei in skeleton_grid:
|
||||||
|
plt.plot([positions[si, 0], positions[ei, 0]],
|
||||||
|
[positions[si, 1], positions[ei, 1]], color="tab:green")
|
||||||
|
|
||||||
|
datafile = PACKAGE_ROOT / "data/merged2.pkl"
|
||||||
with open(datafile, "rb") as f:
|
with open(datafile, "rb") as f:
|
||||||
df = pickle.load(f)
|
df = pickle.load(f)
|
||||||
|
|
||||||
|
|
||||||
data = TrackingData()
|
data = TrackingData()
|
||||||
data.setData(as_dict(df))
|
data.setData(as_dict(df))
|
||||||
all_cogs = data.centerOfGravity()
|
all_cogs = data.centerOfGravity()
|
||||||
@ -253,7 +264,7 @@ def main():
|
|||||||
frames = data["frame"]
|
frames = data["frame"]
|
||||||
tracks = data["track"]
|
tracks = data["track"]
|
||||||
bendedness = data.bendedness()
|
bendedness = data.bendedness()
|
||||||
|
positions = data.coordinates()[[160388, 160389]]
|
||||||
|
|
||||||
embed()
|
embed()
|
||||||
tracks = data["track"]
|
tracks = data["track"]
|
||||||
|
Loading…
Reference in New Issue
Block a user