How can I track the displacement of a moving object.

22 Ansichten (letzte 30 Tage)
Matthew Roper
Matthew Roper am 27 Nov. 2016
Kommentiert: Image Analyst am 27 Mär. 2018
I am trying to track the displacement of a white cross from a video file.
I can convert each individual frame to grayscale but can't then calculate the displacement of the white cross (the object I am trying to track) and plot this on a graph vs time. Here is the code I am currently:
v = VideoReader('Test_4.wmv');
video = read(v);
imtool(video(:,:,:,50))
data=size(video)
numframes = data(4) %Convert to grayscale
for k = numframes-1:-1:1
g(:, :, k) = rgb2gray(video(:, :, :, k));
end
for k = numframes-1:-1:1 %Difference between frames
d(:, :, k) = imabsdiff(g(:, :, k), g(:, :, k+1));
end
imtool(d(:, :, 50), [])
thresh = graythresh(d)%Divides between foreground and background
bw = (d >= thresh * 255); imtool(bw(:, :, 50))
bw2 = bwareaopen(bw, 20, 8); %Removes objects that are too small
s = regionprops(bwlabel(bw2(:,:,1)), 'centroid'); %label each object and calc centre of mass
c = [s.Centroid]
subplot(2, 1, 1)
plot(t, centroids(:,1)), ylabel('x')
subplot(2, 1, 2)
plot(t, centroids(:, 2)), ylabel('y')
xlabel('time (s)')
Help would be much appreciated, thanks.

Antworten (1)

Image Analyst
Image Analyst am 28 Nov. 2016
Well not having the video, or even a frame from it, it's hard to know what to suggest. But assuming you have one cross and you've segmented it so that it's the largest blob in the image, you might use bwareafilt(bw, 1) instead of bwareaopen(bw, 20, 8).
  7 Kommentare
AC
AC am 27 Mär. 2018

Dear Sir, I want to use simulink image processing and need to measure white object's displacement graph shown in figure. I attached my video.. How can do this? Anyone can help me ? If i success i will record a real object that moves faster in video..

Image Analyst
Image Analyst am 27 Mär. 2018
I don't know how to use Simulink.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by