2014-09-05 3 views
1

흐름의 값을 표시되지 않는 것은 그래서 나는이 코드를 함께했다vision.OpticalFlow 비디오도 내가 matlab에를 사용하여 객체의 속도를 참조하려고

reader = vision.VideoFileReader ('C:\folder1\objectsandflow.avi'); 
viewer = vision.DeployableVideoPlayer; 
optical = vision.OpticalFlow; 
optical.OutputValue = 'Horizontal and vertical components in complex form'; 
videoPlayer = vision.VideoPlayer('Name','Motion Vector'); 

while isDone (reader) 
I = step(reader); 
of = step (optical, rgb2gray(I)); 
y = of .* conj(of); 
step(viewThresh,y>mean(y(:))); 
step(videoPlayer) 
end 
release(videoPlayer); 
release(reader); 

문제는 내가 볼 수 없다 어느 값의 흐름 (나는 어떤 물체의 속도를 찾고 있는데 그것을 위해서 Matlab을 사용할 수 있는가?) 또는 비디오가 아닌가?

동시에 이것이 작동 할 지 모른다. 이 코드를 사용할 수없는 경우에 내 개체의 모든 속도를 계산하려면 어떻게 Matlab에서 여러 속도를 계산할 수 있습니까?

답변

0

귀하의 문제는이 두 줄에 있습니다

step(viewThresh,y>mean(y(:))); 
step(videoPlayer) 

다음으로 대체하십시오 :

viewThresh = y; 
viewThresh(y < mean(y(:))) = 0; 
step(videoPlayer, viewThresh); 

당신은 임계 ystep 방법이 필요하지 않습니다, 당신이 어떤 객체를 사용하지 않기 때문에 . 그리고 videoPlayer 개체에서 step을 호출하면 표시 할 비디오 프레임을 전달해야합니다.

+0

내가 원하는 것은 내 비디오에서 4 개의 객체의 속도를 알고 있기 때문에 (내가 찾은 것에 따라) 단계 또는 opticalflow를 사용해야하지만 비디오에서 이러한 속도를 보는 방법을 여전히 모릅니다. 내 개체를 분류하고 계산할 수는 있지만 속도 도움말을 보는 방법이나 방법을 모르겠다. –

+0

'떨림'을 사용하여 흐름 벡터를 시각화 할 수 있습니다. – Dima