Plot graph from tracked points in 2D pictures

6 views (last 30 days)
In some Video i tracked an moving object. I extract the width and height in pixels and set these values as limit for my plot diagram. Now i want to get the tracked points in the diagram.
What I'm currently doing:
% read, track, display points and results in each frame
while hasFrame(videoReader)
frame = readFrame(videoReader);
[points,validity] = tracker(frame);
out = insertMarker(frame,points(validity, :),'+');
writeVideo(v1, out);
videoPlayer(out);
end
close(v1);
release(videoPlayer);
% draw diagram with position of tracked markers as graph
plot(points(:,1),points(:,2));
xlim([0 imageWidth])
ylim([0 imageHeight])
imageWidth and imageHeight are getting extracted from the first frame. The plotting is actually showing something, but the graph is not corresponding to my real tracked points. The Image is a 2D image, like looking from top on a table. So i only need x and y coordinates in pixels of the points and plot them.
What am I doing wrong?

Accepted Answer

Image Analyst
Image Analyst on 3 Dec 2022
Moved: Image Analyst on 3 Dec 2022
Are you sure points is in the form (x,y) and not (row, column) because if it were the plot would be rotated 90 degrees.
Why not display the last frame and plot the points over it?
imshow(frame);
hold on
axis('on', 'image')
plot(points(:,1), points(:,2), 'r.-', 'LineWidth', 2, 'MarkerSize', 30);
  2 Comments
Henning
Henning on 3 Dec 2022
Moved: Image Analyst on 3 Dec 2022
oh yes, you are absolutely right.
Your solution works perfect and indeed loks great. Thanks for the quick answer. I am new to MATLAB so i had no idea :D
Image Analyst
Image Analyst on 3 Dec 2022
OK, then can you please click the "Accept this answer" link? Thanks in advance. 🙂

Sign in to comment.

More Answers (0)

Products


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!