2016-02-11 3 views
0

Как вы можете вычислить и отобразить оптический поток двух изображений в Matlab? Является ли их встроенная функция для этого, и если да, то как вы это реализуете?Оптический поток в Matlab

+0

Вы пробовали: http://bit.ly/1o89ObT – Lui

+0

Да, я сделал это в Google, однако я не мог найти какую-либо функцию, которая делает такие вещи. Я новичок в использовании Matlab, поэтому, если кто-нибудь, кто знаком с использованием Matlab, может мне помочь, я бы очень признателен. – enishiyama

+0

@enishiyama Это поможет реально прочитать результаты Google. Буквально первый результат http://www.mathworks.com/help/vision/ref/vision.opticalflow-class.html – Suever

ответ

0

Если вы просто заинтересованы в том, чтобы визуализировать оптический поток, как цвет и/или стрелки, вот простой скрипт, чтобы показать вам, как это может быть сделано в Matlab:

% Generate an example flow field 
[u,v] = meshgrid(linspace(-1,1)/sqrt(2)); 
mag = sqrt(u.^2 + v.^2); 
an = (atan2(v,u)+pi)/(2*pi); 

%display as arrows 
subplot(1,2,2); 
quiver(u(1:5:end,1:5:end),v(1:5:end,1:5:end)); 
axis image 

%display as color 
subplot(1,2,1); 
imagesc(hsv2rgb(an,mag,mag)); 
axis image 

Мой toolbox on optical flow in Matlab (который я теперь реклама) имеет как минимум 3 различных способа визуализации оптического потока с комбинацией стрелок и цветового кодирования. Для того, чтобы использовать его с файлом AVI фильм, сделайте следующее:

in.movieType = 'example.avi'; % assumes a file 'example.avi' in current folder. 
% in.movieType = 'synthetic'; % generate synthetic video. 
% in.movieType = 'camera';  % assumes a camera available in the system. 

in.method = @Flow1;  %Locally regularized and vectorized method 
% in.method = @FlowLK;  %Lucas and Kanade 
% in.method = @FlowHS;  %Horn and Schunk, variational (global regularization) 

in.bRecordFlow = 1; %record the optical flow, not only display it 

% resolution of flow field [Height Width]: 
in.flowRes = [24 24];  %flow resolution <= video resolution 

% DO THE CALL TO THE TOOLBOX(initiate the session): 
pathToSave = vidProcessing(in); 

% view interactively the saved session: 
FancyFlowPlayer(pathToSave); 
0

Если у вас есть доступ к Matlab Computer Vision, Toolbox, вы можете использовать встроенные функции Lucas-Kanade оптического потока, Хорн-Шунка и Farnebäck , Им нужна последовательность изображений в оттенках серого. Они возвращают объект Flow, содержащий поток в направлении x, y, а также величину и угол. Для отображения вы можете использовать сюжет или колчан.

Смежные вопросы