Ho scoperto che usare l'optical flow non è sbagliato, il problema che sto riscontrando è che i vettori dati dall'optical flow non riportano il movimento tra le due immagini. A questo punto penso che il problema stia nella registrazione. Allego il codice, sapreste darmi alcune dritta sulla imregister?
clc
clear
close all
%Lettura foto
fixed = rgb2gray(imread('Fixed_2.jpg'));
moving = rgb2gray(imread('Moved_2.jpg'));
% REGISTRAZIONE DELLE IMMAGINI
[optimizer, metric] = imregconfig('multimodal');
movingRegistered = imregister(moving, fixed, 'affine', optimizer, metric);
%Creazione campoi vettoriale
opticFlow = opticalFlowHS;
flow = estimateFlow(opticFlow,fixed);
flow = estimateFlow(opticFlow,movingRegistered);
figure;
subplot(2,2,1), imshow(fixed);
title('Fixed');
subplot(2,2,2),imshow(moving);
title('Moving');
hold on
plot(flow, 'DecimationFactor',[10 10],'ScaleFactor',100)
hold off
subplot(2,2,3), imshow(flow.Magnitude,[]);
title('Magnitude');
subplot(2,2,4), imshow(flow.Orientation,[]);
title('Orientation');