forked from Tianshu-Liu/OpenOpticalFlow
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerate_invmatrix.m
More file actions
49 lines (38 loc) · 1.49 KB
/
generate_invmatrix.m
File metadata and controls
49 lines (38 loc) · 1.49 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
48
49
function [B11, B12, B22] = generate_invmatrix(I, alpha, h)
D = [0, -1, 0; 0,0,0; 0,1,0]/2; %%% partial derivative
M = [1, 0, -1; 0,0,0;-1,0,1]/4; %%% mixed partial derivatives
F = [0, 0, 0; 0,1,1;0,1,1]/4; %%% average
D2 = [0, 1, 0; 0,-2,0;0,1,0]; %%% partial derivative
H = [1, 1, 1; 1,0,1;1,1,1];
[r,c]=size(I);
cmtx = imfilter(ones(size(I)), H/(h*h), 'same');
A11 = I.*(imfilter(I, D2/(h*h), 'replicate', 'same')-2*I/(h*h)) - alpha*cmtx;
A22 = I.*(imfilter(I, D2'/(h*h), 'replicate', 'same')-2*I/(h*h)) - alpha*cmtx;
A12 = I.*imfilter(I, M/(h*h), 'replicate', 'same');
DetA = A11.*A22-A12.*A12;
B11 = A22./DetA;
B12 = -A12./DetA;
B22 = A11./DetA;
% D = [0, 0, 0; 0,-1,0;0,1,0]; %%% partial derivative
% M = [0, 0, 0; 0,1,-1;0,-1,1]; %%% mixed partial derivatives
% F = [0, 0, 0; 0,1,1;0,1,1]/4; %%% average
% D2 = [0, 1, 0; 0,-2,0;0,1,0]; %%% partial derivative
% H = [1, 1, 1; 1,0,1;1,1,1];
%
% [r,c]=size(I);
%
% cmtx = imfilter(ones(size(I)), H, 'same');
%
% A11 = I.*(imfilter(I, D2, 'replicate', 'same') - ...
% 2*imfilter(I, D, 'replicate', 'same') - 2*I) - alpha*cmtx;
% A22 = I.*(imfilter(I, D2', 'replicate', 'same') - ...
% 2*imfilter(I, D', 'replicate', 'same') - 2*I) - alpha*cmtx;
% A12 = I.*(imfilter(I, M, 'replicate', 'same') - ...
% imfilter(I, D, 'replicate', 'same')-imfilter(I, D', 'replicate', 'same') + I);
%
% DetA = A11.*A22-A12.*A12;
%
% B11 = A22./DetA;
% B12 = -A12./DetA;
% B22 = A11./DetA;
%