Borrar filtros
Borrar filtros

I have calculated the distance between fixed object and moving object in a video. Using this distance I am trying to calculate the displacement of moving object in consecutive frame.

3 visualizaciones (últimos 30 días)
I have tried doing it, but I am getting error.
if true
% code
end X(r)=thisCentroid(:,1);
Y(r)=thisCentroid(:,2);
if r>=2
dx=X(2)-X(1);
dy=Y(2)-Y(1);
dist_c(k)=hypot(dx,dy);
save dist_c dist_c;
for k=2:numberOfFrames
q(k)=imsubtract(dist_c(k),dist_c(k-1));
end
The error which I am getting while running the code is
  • Attempted to access dist_c(2); index out of bounds because numel(dist_c)=1 .
Error in Untitled2 (line 92)
*q(k)=imsubtract(dist_c(k),dist_c(k-1));*
*

Respuestas (1)

sandeep
sandeep el 20 de Nov. de 2014
Try using pdist() function to calculate the distance between two points and save it to an array. It is not clear in the code about k value from the loop. It looks your dist_c has only one value and you are trying access from the second value.
  1 comentario
rohan gupta
rohan gupta el 20 de Nov. de 2014
Editada: rohan gupta el 21 de Nov. de 2014
I tried using pdist(), its not working. I am still getting same error
When I comment the
q(k)=imsubtract(dist_c(k),dist_c(k-1));
I am able to get the distance between stationary object and moving object for all the frames. Now I am trying to find the displacement of the moving object with respect to stationary object by subtracting the obtained distance of previous frame & present frame. In my video there are in all 900 frames.

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by