-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjacobian_line_pair_to_image.m
More file actions
executable file
·47 lines (42 loc) · 4.27 KB
/
Copy pathjacobian_line_pair_to_image.m
File metadata and controls
executable file
·47 lines (42 loc) · 4.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
%
% Copyright 2014 by Kitware, Inc. All Rights Reserved. Please refer to
% LICENSE.TXT for licensing information, or contact General Counsel,
% Kitware, Inc., 28 Corporate Drive, Clifton Park, NY 12065.
%
function J = jacobian_line_pair_to_image( varargin )
if nargin == 2
lseg1 = varargin{1};
lseg2 = varargin{2};
u_j1 = lseg1(1);
v_j1 = lseg1(3);
u_j2 = lseg1(2);
v_j2 = lseg1(4);
u_k1 = lseg2(1);
v_k1 = lseg2(3);
u_k2 = lseg2(2);
v_k2 = lseg2(4);
elseif nargin == 4
lseg1 = [varargin{1}(1),varargin{2}(1), varargin{1}(2),varargin{2}(2)];
lseg2 = [varargin{3}(1),varargin{4}(1), varargin{3}(2),varargin{4}(2)];
u_j1 = lseg1(1);
v_j1 = lseg1(3);
u_j2 = lseg1(2);
v_j2 = lseg1(4);
u_k1 = lseg2(1);
v_k1 = lseg2(3);
u_k2 = lseg2(2);
v_k2 = lseg2(4);
elseif nargin == 8
u_j1 = varargin{1};
v_j1 = varargin{3};
u_j2 = varargin{2};
v_j2 = varargin{4};
u_k1 = varargin{1};
v_k1 = varargin{3};
u_k2 = varargin{2};
v_k2 = varargin{4};
else
error('Incorrect input for jacobian_line_pair_to_image');
end
J = [ ((u_k1 - u_k2)*(v_j1 - v_j2)*(u_j2*v_k1 - u_k1*v_j2 - u_j2*v_k2 + u_k2*v_j2 + u_k1*v_k2 - u_k2*v_k1))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, -((u_j1 - u_j2)*(u_k1 - u_k2)*(u_j2*v_k1 - u_k1*v_j2 - u_j2*v_k2 + u_k2*v_j2 + u_k1*v_k2 - u_k2*v_k1))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, -((u_k1 - u_k2)*(v_j1 - v_j2)*(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 + u_k2*v_j1 + u_k1*v_k2 - u_k2*v_k1))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, ((u_j1 - u_j2)*(u_k1 - u_k2)*(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 + u_k2*v_j1 + u_k1*v_k2 - u_k2*v_k1))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, ((u_j1 - u_j2)*(v_k1 - v_k2)*(u_j1*v_j2 - u_j2*v_j1 - u_j1*v_k2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, -((u_j1 - u_j2)*(u_k1 - u_k2)*(u_j1*v_j2 - u_j2*v_j1 - u_j1*v_k2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, -((u_j1 - u_j2)*(v_k1 - v_k2)*(u_j1*v_j2 - u_j2*v_j1 - u_j1*v_k1 + u_k1*v_j1 + u_j2*v_k1 - u_k1*v_j2))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, ((u_j1 - u_j2)*(u_k1 - u_k2)*(u_j1*v_j2 - u_j2*v_j1 - u_j1*v_k1 + u_k1*v_j1 + u_j2*v_k1 - u_k1*v_j2))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2;
((v_j1 - v_j2)*(v_k1 - v_k2)*(u_j2*v_k1 - u_k1*v_j2 - u_j2*v_k2 + u_k2*v_j2 + u_k1*v_k2 - u_k2*v_k1))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, -((u_j1 - u_j2)*(v_k1 - v_k2)*(u_j2*v_k1 - u_k1*v_j2 - u_j2*v_k2 + u_k2*v_j2 + u_k1*v_k2 - u_k2*v_k1))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, -((v_j1 - v_j2)*(v_k1 - v_k2)*(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 + u_k2*v_j1 + u_k1*v_k2 - u_k2*v_k1))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, ((u_j1 - u_j2)*(v_k1 - v_k2)*(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 + u_k2*v_j1 + u_k1*v_k2 - u_k2*v_k1))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, ((v_j1 - v_j2)*(v_k1 - v_k2)*(u_j1*v_j2 - u_j2*v_j1 - u_j1*v_k2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, -((u_k1 - u_k2)*(v_j1 - v_j2)*(u_j1*v_j2 - u_j2*v_j1 - u_j1*v_k2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, -((v_j1 - v_j2)*(v_k1 - v_k2)*(u_j1*v_j2 - u_j2*v_j1 - u_j1*v_k1 + u_k1*v_j1 + u_j2*v_k1 - u_k1*v_j2))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2, ((u_k1 - u_k2)*(v_j1 - v_j2)*(u_j1*v_j2 - u_j2*v_j1 - u_j1*v_k1 + u_k1*v_j1 + u_j2*v_k1 - u_k1*v_j2))/(u_j1*v_k1 - u_k1*v_j1 - u_j1*v_k2 - u_j2*v_k1 + u_k1*v_j2 + u_k2*v_j1 + u_j2*v_k2 - u_k2*v_j2)^2 ];