How can I track the displacement of a moving object.

26 visualizaciones (últimos 30 días)
Matthew Roper
Matthew Roper el 27 de Nov. de 2016
Comentada: Image Analyst el 27 de Mzo. de 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.

Respuestas (1)

Image Analyst
Image Analyst el 28 de Nov. de 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 comentarios
AC
AC el 27 de Mzo. de 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 el 27 de Mzo. de 2018
I don't know how to use Simulink.

Iniciar sesión para comentar.

Categorías

Más información sobre Computer Vision with Simulink en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by