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 次查看(过去 30 天)
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));*
*

回答(1 个)

sandeep
sandeep 2014-11-20
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 个评论
rohan gupta
rohan gupta 2014-11-20
编辑:rohan gupta 2014-11-21
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.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by