Calculate optical flow between two pictures

2 次查看(过去 30 天)
Hi,
I tried to calculate the optical flow between two pictures with the matlab built-in function:
I1 = rgb2gray(imread('Test4.jpg'));
I2 = rgb2gray(imread('Test4e.jpg'));
opticalFlow = vision.OpticalFlow('ReferenceFrameSource', 'Input port')
step(opticalFlow, I1, I2)
But I get the error:
Error using vision.OpticalFlow/validateInputsImpl (line 846)
Expected input I data type to be floating-point.
I am not sure what this means. I can't see the code of this. Any ideas on what I am doing wrong?
Thanks

采纳的回答

Guillaume
Guillaume 2014-12-14
Your I1 and I2 are of type uint8. Convert them to double:
I1 = im2double(rgb2gray(imread('Test4.jpg')));
I2 = im2double(rgb2gray(imread('Test4e.jpg')));
  1 个评论
Patrick
Patrick 2014-12-14
Thanks a lot. I actually thought I tried this and it didn't work but it seems like I made another mistake doing this.

请先登录,再进行评论。

更多回答(0 个)

产品

Community Treasure Hunt

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

Start Hunting!

Translated by