https://doi.org/10.5201/ipol.2018.230
Tip revision: 72f7c393743a7fe24b0fa58ce2460e9d3fd14873 authored by Software Heritage on 12 October 2018, 00:00:00 UTC
ipol: Deposit 1335 in collection ipol
ipol: Deposit 1335 in collection ipol
Tip revision: 72f7c39
composeHomographies.m
#! /usr/bin/octave -qfW
%%% function composeHomographies ( f_B2A, f_C2B, f_C2A )
%%% If Octave, get arg_list with argv.
if exist('OCTAVE_VERSION', 'builtin')
arg_list = argv();
f_B2A = arg_list{1};
f_C2B = arg_list{2};
f_C2A = arg_list{3};
else
%%% With Matlab, replace the first line by
%%% function composeHomographies ( f_B2A, f_C2B, f_C2A )
end
%%% get values of 3x3 matrix shaped as h_11 h_12 h_13 h_21 h_22 etc.
file_A2B = fopen(f_B2A, 'r');
B2A = fscanf(file_A2B, '%f');
B2A = reshape(B2A, [3 3])';
%%% get values of 3x3 matrix shaped as h_11 h_12 h_13 h_21 h_22 etc.
file_B2C = fopen(f_C2B, 'r');
C2B = fscanf(file_B2C, '%f');
C2B = reshape(C2B, [3 3])';
%%% compose homographies
C2A = B2A * C2B;
%%% save new matrix with same precision
C2A = C2A'; % because it must be saved line by line, not column by column
file_comp = fopen(f_C2A, 'w');
fprintf(file_comp, ...
'%.13e %.13e %.13e %.13e %.13e %.13e %.13e %.13e %.13e\n', C2A(:)');