summaryrefslogtreecommitdiffstats
path: root/SD-VBS/common/toolbox/lagrcv/test/test_lk.m
blob: c6ca70106ec7682ae617bcc5e9d2b6d0e7962102 (plain) (blame)
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
addpath ~/Matlab/Toolbox/lagrcv/
addpath ~/Matlab/Toolbox/toolbox_basic/filter
addpath ~/Matlab/Toolbox/ikkjin/

N_FEA=1600;
WINSZ=8; %size of sum-up window
NO_PYR=2;
SUPPRESION_RADIUS=10;
LK_ITER=20;
IMAGE_DIR='~/backup/Research/ant/Transport/'
filelist=dir(fullfile(IMAGE_DIR, '*.jpg'));
flen=length(filelist);

img_idx_cur=[1:flen];

%subplot(1,2,1);imshow(Iprev)
%/hold on
%//scatter(features(2,:),features(1,:),'r')
%%
imgName=fullfile(IMAGE_DIR,filelist(img_idx_cur(1)).name);
Icur=imread(imgName);
Icur=rgb2gray(Icur);
Icur=calcImgBlurMex(double(Icur));
%%

Jpyr=getPyramid(Icur, 2);

[lambda tr det c_xx c_xy c_yy] =calcTextureMex(double(Icur), WINSZ);
imgsz=size(lambda);
lambda([1:8 end-8:end],:)=0;
lambda(:,[1:8 end-8:end])=0;
[temp idx]=sort(lambda(:), 'descend');

%%
featureIdx=idx(1:N_FEA);
features=zeros(3, N_FEA);
features(1,:)=ceil(featureIdx/imgsz(1));
features(2,:)=featureIdx'-(features(1,:)-1)*imgsz(1);
features(3,:)=lambda(featureIdx);

imagesc(lambda); hold on
scatter(features(1,:), features(2,:), 'r+');hold off
%%
interestPnt=getANMS(features(1,:)', features(2,:)', features(3,:)', SUPPRESION_RADIUS);
interestPnt=interestPnt';
scatter(interestPnt(1,:), interestPnt(2,:), 'g+')
%%
features=interestPnt(1:2,:);
%%

for iter=img_idx_cur
    Iprev=Icur;
    Icur=imread(fullfile(IMAGE_DIR,filelist(img_idx_cur(iter)).name));      
    Icur=rgb2gray(Icur);
    Icur=calcImgBlurMex(double(Icur));
    
    Ipyr=Jpyr;
    Jpyr=getPyramid(Icur, 2);

    [dxPyr dyPyr]=calcSobelPyrMex(Ipyr,2);

    [lambda tr det c_xx c_xy c_yy] =  calcTexturePyrMex(dxPyr, dyPyr, WINSZ, NO_PYR);

    [newpoints status]=calcOptFlowLKPyrMex(Ipyr, dxPyr, dyPyr, Jpyr, double(features), 4, 0.03, LK_ITER, c_xx, c_xy, c_yy); 

    newpoints=newpoints(:,find(status));
    figure(1);
    imagesc(Icur);colormap gray
    hold on;scatter(newpoints(1,:), newpoints(2,:), 'r+'); hold off;    
    drawnow
    %print('-djpeg', sprintf('result/result_%03d', iter))    
    %pause
    features=newpoints;    
end