применить матрицу гомографии к набору точек в Matlab - PullRequest
0 голосов
/ 21 сентября 2019

Я рассчитал матрицу гомографии, используя эти наборы точек

точки трапеции равны

x=[ 102,48; 206,48; 257,143; 53,118]   

квадратные точки (спроецированные точки) равны y=[0,0; 335,0; 335,178; 0,178]

Гомографическая матрица

H=                                                                
  -0.0000   -0.0173   -0.0001                                       
   0.0000    0.0382    0.0001                                      
  -0.0000   -0.9990    0.0126      

Теперь я хочу применить H к x, чтобы получить проецируемые точки (у)

Как рассчитать это в Matlab?

1 Ответ

1 голос
/ 21 сентября 2019

Это обычный способ сделать это:

% your vectors and your H
x = [ 102,48; 206,48; 257,143; 53,118];
y = [0,0; 335,0; 335,178; 0,178];
H = [-0.0000   -0.0173   -0.0001;                                       
   0.0000    0.0382    0.0001;                                    
  -0.0000   -0.9990    0.0126];

x = [x ones(4,1)]; % make your coords homogenous
y = [y ones(4,1)];

x_projected = H*x';
x_projected = x_projected./repmat(x_projected(3,:),3,1); % normalize

x_projected - это 3x4 в этом случае, и каждый столбец является одной из проецируемых точек.

Чтобы проверить проекцию против. ваше y: евклидово расстояние столбцов y'-x_projected должно быть небольшим в зависимости от вашего H.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...