Optical Flow HS between two Images

9 次查看(过去 30 天)
Hi, I'm working with the Optical Flow HS method and I would like to know how I can set the "Compute optical flow between" parameter to 'Two images'.
In the description, it says that I have to change it into 'Two images' to compute the optical Flow between images instead of video frames.
% Compute optical flow
flow = estimateFlow(opticFlow, frameGray);
This is the standard input, what exactly I have to digit to change it?
Thank you very much

回答(1 个)

Hrishikesh Borate
Hrishikesh Borate 2021-7-15
Hi,
The following code demonstrates the computation of optical flow between two images.
vidReader = VideoReader('visiontraffic.avi','CurrentTime',11);
frame1 = readFrame(vidReader);
% Extract 11th frame
for i=1:10
frame2 = readFrame(vidReader);
end
frame = {frame1, frame2};
h = figure;
movegui(h);
hViewPanel = uipanel(h,'Position',[0 0 1 1],'Title','Plot of Optical Flow Vectors');
hPlot = axes(hViewPanel);
opticFlow = opticalFlowHS;
for i=1:2
frameRGB = frame{i};
frameGray = im2gray(frameRGB);
flow = estimateFlow(opticFlow,frameGray);
imshow(frameRGB)
hold on
plot(flow,'DecimationFactor',[5 5],'ScaleFactor',60,'Parent',hPlot);
hold off
pause(1)
end
The flow variable stores the optical flow between the two images (frame1 and frame2).
For more information, refer to the opticalFlowHS documentation.
  2 个评论
Vivek Raj
Vivek Raj 2023-11-5
Hello everyone, how i can detect current position of a ball (if i want to track a ball in image) using Horn-Schunk method?
Image Analyst
Image Analyst 2023-11-5
I'm guessing you'd threshold the flow image and then call regionprops and ask for the centroid. Attach a snippet of your video in a new question, and your code, if you still have problems.

请先登录,再进行评论。

类别

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