Optical Flow HS between two Images

37 views (last 30 days)
Matteo Cacchioni
Matteo Cacchioni on 7 Jul 2021
Answered: Hrishikesh Borate on 15 Jul 2021
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

Answers (1)

Hrishikesh Borate
Hrishikesh Borate on 15 Jul 2021
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);
frame = {frame1, frame2};
h = figure;
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);
hold on
plot(flow,'DecimationFactor',[5 5],'ScaleFactor',60,'Parent',hPlot);
hold off
The flow variable stores the optical flow between the two images (frame1 and frame2).
For more information, refer to the opticalFlowHS documentation.

Community Treasure Hunt

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

Start Hunting!

Translated by