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.

조회 수: 6 (최근 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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Tracking and Motion Estimation에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by