summaryrefslogtreecommitdiffstats
path: root/SD-VBS/benchmarks/tracking/src/matlab
diff options
context:
space:
mode:
authorleochanj105 <leochanj@live.unc.edu>2020-10-20 03:47:33 -0400
committerleochanj105 <leochanj@live.unc.edu>2020-10-20 03:47:33 -0400
commita32f220f06cc463e5b56e7fa0b1b1334d94d08f3 (patch)
tree4af4caa60074465d85fc2ef5cc1b23e74c064329 /SD-VBS/benchmarks/tracking/src/matlab
parent79f30887129145e15e5172e36a7d7602859fc932 (diff)
matlab removed
Diffstat (limited to 'SD-VBS/benchmarks/tracking/src/matlab')
-rwxr-xr-xSD-VBS/benchmarks/tracking/src/matlab/Filtering.m30
-rwxr-xr-xSD-VBS/benchmarks/tracking/src/matlab/calcAreaSum.m48
-rwxr-xr-xSD-VBS/benchmarks/tracking/src/matlab/calcGoodFeature.m28
-rwxr-xr-xSD-VBS/benchmarks/tracking/src/matlab/calcPyrLKTrack.m108
-rwxr-xr-xSD-VBS/benchmarks/tracking/src/matlab/calcSobel.m74
-rwxr-xr-xSD-VBS/benchmarks/tracking/src/matlab/getInterpolatePatch.m22
-rwxr-xr-xSD-VBS/benchmarks/tracking/src/matlab/getPyramid.m10
-rwxr-xr-xSD-VBS/benchmarks/tracking/src/matlab/imageBlur.m36
-rwxr-xr-xSD-VBS/benchmarks/tracking/src/matlab/imageResize.m50
-rwxr-xr-xSD-VBS/benchmarks/tracking/src/matlab/rgb2gray_f2_f3.m16
-rwxr-xr-xSD-VBS/benchmarks/tracking/src/matlab/script_run_profile.m178
11 files changed, 0 insertions, 600 deletions
diff --git a/SD-VBS/benchmarks/tracking/src/matlab/Filtering.m b/SD-VBS/benchmarks/tracking/src/matlab/Filtering.m
deleted file mode 100755
index d42ebb7..0000000
--- a/SD-VBS/benchmarks/tracking/src/matlab/Filtering.m
+++ /dev/null
@@ -1,30 +0,0 @@
1function imageOut = Filtering(imageIn, rows, cols, kernel, kernelSize)
2
3imageOut = zeros(rows, cols);%initalize output image to all zeros
4imageIn = double(imageIn);%convert to double to allow image arithmetic
5
6 intialCol = ((kernelSize+1)/2);
7 endCol = round(cols - ((kernelSize+1)/2));
8 halfKernel = (kernelSize-1)/2;
9
10 initialRow = ((kernelSize+1)/2);
11 endRow = (rows - ((kernelSize+1)/2));
12
13 %% Start 1-D filtering row-wise first.
14
15 for i=initialRow:endRow
16 for j=initialCol:endCol
17 imageOut(i,j) = sum(imageIn(i,j-halfKernel:j+halfKernel).*kernel)/sum(kernel);%actual filtering step
18 end
19 end
20
21 %% Start 1-D filtering col-wise first.
22
23% kernelT = kernel';
24% for i=initialRow:endRow
25% for j=initialCol:endCol
26% imageOut(i,j) = sum(imageOut(i-halfKernel:i+halfKernel,j).*kernelT)/sum(kernel);%kernel to be transposed for performing multiplcation
27% end
28% end
29%
30% %imshow(uint8(imageOut));
diff --git a/SD-VBS/benchmarks/tracking/src/matlab/calcAreaSum.m b/SD-VBS/benchmarks/tracking/src/matlab/calcAreaSum.m
deleted file mode 100755
index f8dd3da..0000000
--- a/SD-VBS/benchmarks/tracking/src/matlab/calcAreaSum.m
+++ /dev/null
@@ -1,48 +0,0 @@
1%calcAreaSum:
2% sizeX = cols
3% sizeY = rows
4function ret = calcAreaSum(src, sizeX, sizeY, winSize, dataDir)
5
6src = double(src);
7nave = winSize;
8nave_half = floor((nave+1)/2);
9a1=zeros(1,sizeX+nave);
10
11for i=1:sizeY
12 %pull out one row
13 for j=1:sizeX
14 a1(j+nave_half)=src(i,j);
15 end
16
17 a1sum=0;
18 %sum up values within a window
19 for k=1:nave
20 a1sum = a1sum+a1(k);
21 end
22
23 for j=1:sizeX
24 ret(i,j) = a1sum;
25 a1sum = a1sum + a1(j+nave) - a1(j);
26 end
27end
28
29a1=zeros(1,sizeY+nave);
30for i=1:sizeX
31
32 %pull out one col
33 for j=1:sizeY
34 a1(j+nave_half)=ret(j,i);
35 end
36
37 a1sum=0;
38 %sum up values within a window
39 for k=1:nave
40 a1sum = a1sum+a1(k);
41 end
42
43 for j=1:sizeY
44 ret(j,i) = a1sum;
45 a1sum = a1sum + a1(j+nave) - a1(j);
46 end
47end
48
diff --git a/SD-VBS/benchmarks/tracking/src/matlab/calcGoodFeature.m b/SD-VBS/benchmarks/tracking/src/matlab/calcGoodFeature.m
deleted file mode 100755
index b83faa6..0000000
--- a/SD-VBS/benchmarks/tracking/src/matlab/calcGoodFeature.m
+++ /dev/null
@@ -1,28 +0,0 @@
1%calcGoodFeature:
2
3function [lambda, tr, det,c_xx, c_xy, c_yy] = calcGoodFeature(dX, dY, sizeX, sizeY, winSize, dataDir)
4
5 for i=1:sizeY
6 for j=1:sizeX
7 xx(i,j)=dX(i,j)*dX(i,j);
8 xy(i,j)=dX(i,j)*dY(i,j);
9 yy(i,j)=dY(i,j)*dY(i,j);
10 end
11 end
12
13 c_xx=calcAreaSum(xx, sizeX, sizeY, winSize,dataDir);
14 c_xy=calcAreaSum(xy, sizeX, sizeY, winSize,dataDir);
15 c_yy=calcAreaSum(yy, sizeX, sizeY, winSize,dataDir);
16
17 for i=1:sizeY
18 for j=1:sizeX
19 tr(i,j)= c_xx(i,j)+c_yy(i,j);
20 det(i,j)= c_xx(i,j)*c_yy(i,j)-c_xy(i,j)*c_xy(i,j);
21% if( tr(i,j) == 0 )
22% lambda(i,j) = 0;
23% else
24 lambda(i,j)=det(i,j)/(tr(i,j) + 0.00001);
25% end
26 end
27 end
28
diff --git a/SD-VBS/benchmarks/tracking/src/matlab/calcPyrLKTrack.m b/SD-VBS/benchmarks/tracking/src/matlab/calcPyrLKTrack.m
deleted file mode 100755
index c965c2b..0000000
--- a/SD-VBS/benchmarks/tracking/src/matlab/calcPyrLKTrack.m
+++ /dev/null
@@ -1,108 +0,0 @@
1function [newFPnt, valid] = calcPyrLKTrack(iP, iDxP, iDyP, jP, fPnt, nFeatures, winSize, accuracy_th, max_iter)
2
3cellDims = size(iP);
4GOOD_FEATURE_LAMBDA_TH = accuracy_th;
5
6for i=1:(cellDims(1))
7 curImgDims = size(iP{i});
8 imgDims(i,1)= curImgDims(1);
9 imgDims(i,2)= curImgDims(2);
10
11end
12
13pLevel = cellDims(1);
14
15rate=[1, 0.5, 0.25, 0.125, 0.0625, 0.03125];
16winSizeSq=4*winSize*winSize;
17iPatch=cell(1, winSizeSq);
18jPatch=cell(1, winSizeSq);
19iDxPatch=cell(1,winSizeSq);
20iDyPatch=cell(1,winSizeSq);
21
22valid(1:nFeatures) = 1;
23newFPnt = zeros(2,nFeatures);
24
25for i=1:nFeatures
26
27 dX=0;
28 dY=0;
29
30%% x is rows here and y is cols
31
32 x=fPnt(1,i)*rate(pLevel+1); %half size of real level
33 y=fPnt(2,i)*rate(pLevel+1);
34
35 for level=pLevel:-1:1
36
37 x = x+x;
38 y = y+y;
39 dX = dX+dX;
40 dY = dY+dY;
41 imgSize(1)=imgDims(level,1); %y,x
42 imgSize(2)=imgDims(level,2); %y,x
43
44 c_xx = 0;
45 c_xy = 0;
46 c_yy = 0;
47
48 %when feature goes out to the boundary.
49
50 if ((x-winSize)<1 || (y-winSize)<1 || (y+winSize+1)>imgSize(1) || (x+winSize+1)>imgSize(2))
51 %winSize+1due to interpolation
52 %error or skip the level??
53 valid(i) = 0;
54 break;
55 end
56
57
58 iPatch = getInterpolatePatch(iP{level}, imgSize(1), imgSize(2), x, y, winSize);
59 iDxPatch = getInterpolatePatch(iDxP{level}, imgSize(1), imgSize(2), x, y, winSize);
60 iDyPatch = getInterpolatePatch(iDyP{level}, imgSize(1), imgSize(2), x, y, winSize);
61
62 for idx=1:winSizeSq
63 c_xx = c_xx + iDxPatch(idx) * iDxPatch(idx);
64 c_xy = c_xy + iDxPatch(idx) * iDyPatch(idx);
65 c_yy = c_yy + iDyPatch(idx) * iDyPatch(idx);
66 end
67
68 c_det = c_xx * c_yy - c_xy * c_xy;
69
70 if (c_det/(c_xx+c_yy+0.00001)) < GOOD_FEATURE_LAMBDA_TH
71 valid(i)=0;
72 break;
73 end
74
75 c_det=1/c_det;
76
77 for k=1:max_iter
78 if ((x+dX-winSize)<1 || (y+dY-winSize)<1 || (y+dY+winSize+1)>imgSize(1) || (x+dX+winSize+1)>imgSize(2))
79 %winSize+1due to interpolation
80 %error or skip the level??
81 valid(i)=0;
82 break;
83 end
84
85 jPatch = getInterpolatePatch(jP{level}, imgSize(1), imgSize(2), x+dX, y+dY, winSize);
86 eX = 0;
87 eY = 0;
88 for idx=1:winSizeSq
89 dIt = iPatch(idx) - jPatch(idx);
90 eX = eX + (dIt*iDxPatch(idx));
91 eY = eY + (dIt*iDyPatch(idx));
92 end
93
94 mX = c_det*(eX*c_yy-eY*c_xy);
95 mY = c_det*(-eX*c_xy+eY*c_xx);
96 dX = dX + mX;
97 dY = dY + mY;
98
99
100 if ((mX*mX+mY*mY)<accuracy_th)
101 break;
102 end
103 end
104 end
105
106 newFPnt(1, i) = fPnt(1,i)+dX;
107 newFPnt(2, i) = fPnt(2,i)+dY;
108end
diff --git a/SD-VBS/benchmarks/tracking/src/matlab/calcSobel.m b/SD-VBS/benchmarks/tracking/src/matlab/calcSobel.m
deleted file mode 100755
index 8617c25..0000000
--- a/SD-VBS/benchmarks/tracking/src/matlab/calcSobel.m
+++ /dev/null
@@ -1,74 +0,0 @@
1function [Dx, Dy] = calcSobel(imageIn)
2
3imsize = size(imageIn);
4rows = imsize(1);
5cols = imsize(2);
6
7Dx = zeros(rows, cols); %initalize output image to all zeros
8Dy = zeros(rows, cols); %initalize output image to all zeros
9imageIn = double(imageIn); %convert to double to allow image arithmetic
10
11kernel_1 = [1 2 1];
12kernel_2 = [1 0 -1];
13kernelSize = 3;
14
15sum_kernel_1 = 4;
16sum_kernel_2 = 2;
17
18startCol = 2; %((kernelSize+1)/2);
19endCol = cols - 1; %round(cols - ((kernelSize+1)/2));
20halfKernel = 1; %(kernelSize-1)/2;
21
22startRow = 2; %((kernelSize+1)/2);
23endRow = rows - 1; %(rows - ((kernelSize+1)/2));
24
25%imshow(uint8(imageIn));
26
27%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
28%% Calculate Gx (gradient in X-dir)
29%% Gx = ([1 2 1]') * ([1 0 -1] * imageIn)
30%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
31
32%% Start 1-D filtering row-wise first.
33
34tempOut = zeros(rows, cols);%initalize temp image to all zeros
35for i=startRow:endRow
36 for j=startCol:endCol
37 tempOut(i,j) = sum(imageIn(i,j-halfKernel:j+halfKernel).*kernel_2)/sum_kernel_2;%actual filtering step
38 end
39end
40
41% Start 1-D filtering col-wise first.
42
43for i=startRow:endRow
44 for j=startCol:endCol
45 Dx(i,j) = sum(tempOut(i-halfKernel:i+halfKernel,j).*kernel_1')/sum_kernel_1;%kernel to be transposed for performing multiplcation
46 Dx(i,j) = Dx(i,j);% + 128;
47 end
48end
49
50
51%imshow(uint8(Dx));
52
53
54%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
55%% Calculate Gy (gradient in Y-dir)
56%% Gy = ([1 0 -1]') * ([1 2 1] * imageIn)
57%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
58
59%% Start 1-D filtering row-wise first.
60
61for i=startRow:endRow
62 for j=startCol:endCol
63 tempOut(i,j) = sum(imageIn(i-halfKernel:i+halfKernel,j).*kernel_2')/sum_kernel_2;%kernel to be transposed for performing multiplcation
64 end
65end
66
67for i=startRow:endRow
68 for j=startCol:endCol
69 Dy(i,j) = sum(tempOut(i,j-halfKernel:j+halfKernel).*kernel_1)/sum_kernel_1;
70 end
71end
72
73
74%imshow(uint8(Dy));
diff --git a/SD-VBS/benchmarks/tracking/src/matlab/getInterpolatePatch.m b/SD-VBS/benchmarks/tracking/src/matlab/getInterpolatePatch.m
deleted file mode 100755
index d0a64d3..0000000
--- a/SD-VBS/benchmarks/tracking/src/matlab/getInterpolatePatch.m
+++ /dev/null
@@ -1,22 +0,0 @@
1function [dstImg] = getInterpolatePatch(srcImg,rows, cols,centerX,centerY,winSize)
2
3a=centerX-floor(centerX);
4b=centerY-floor(centerY);
5a11=(1-a)*(1-b);
6a12=a*(1-b);
7a21=(1-a)*b;
8a22=a*b;
9
10for i=-winSize:winSize-1
11 srcIdxx=floor(centerY)+i;
12 dstIdxx=i+winSize+1;
13 for j=-winSize:winSize-1
14 srcIdx = srcIdxx * cols + floor(centerX) + j;
15 dstIdx = dstIdxx*2*winSize+j+winSize+1;
16 dstImg(dstIdx)=srcImg(srcIdxx, floor(centerX)+j)*a11;
17 dstImg(dstIdx)= dstImg(dstIdx) + srcImg(srcIdxx, floor(centerX)+j+1)*a12;
18 dstImg(dstIdx)= dstImg(dstIdx) + srcImg(srcIdxx+1, floor(centerX)+j)*a21;
19 dstImg(dstIdx)= dstImg(dstIdx) + srcImg(srcIdxx+1, floor(centerX)+j+1)*a22;
20 end
21end
22
diff --git a/SD-VBS/benchmarks/tracking/src/matlab/getPyramid.m b/SD-VBS/benchmarks/tracking/src/matlab/getPyramid.m
deleted file mode 100755
index 845456a..0000000
--- a/SD-VBS/benchmarks/tracking/src/matlab/getPyramid.m
+++ /dev/null
@@ -1,10 +0,0 @@
1function pyr=getPyramid(img, level)
2kernel=[1/16,1/4,3/8,1/4,1/16];
3pyr=cell(level,1);
4pyr{1}=double(img);
5for i=2:level
6% imgBlur=conv2(pyr{i-1}, kernel, 'same');
7% imgBlur=conv2(imgBlur, kernel, 'same');
8% pyr{i}=imgBlur(1:2:end, 1:2:end);
9 pyr{i}=calcResizedImgMex(pyr{i-1});
10end
diff --git a/SD-VBS/benchmarks/tracking/src/matlab/imageBlur.m b/SD-VBS/benchmarks/tracking/src/matlab/imageBlur.m
deleted file mode 100755
index fd6c199..0000000
--- a/SD-VBS/benchmarks/tracking/src/matlab/imageBlur.m
+++ /dev/null
@@ -1,36 +0,0 @@
1function imageOut = imageBlur(imageIn)
2
3imsize = size(imageIn);
4rows = imsize(1);
5cols = imsize(2);
6
7imageOut = zeros(rows, cols);%initalize output image to all zeros
8imageIn = double(imageIn);%convert to double to allow image arithmetic
9
10kernel = [1 4 6 4 1];
11kernelSize = 5;
12
13startCol = 3; %((kernelSize+1)/2);
14endCol = cols - 2; %round(cols - ((kernelSize+1)/2));
15halfKernel = 2; %(kernelSize-1)/2;
16
17startRow = 3; %((kernelSize+1)/2);
18endRow = rows - 2; %(rows - ((kernelSize+1)/2));
19
20%% Start 1-D filtering row-wise first.
21
22tempOut = zeros(rows, cols);%initalize temp image to all zeros
23for i=startRow:endRow
24 for j=startCol:endCol
25 tempOut(i,j) = sum(imageIn(i,j-halfKernel:j+halfKernel).*kernel)/sum(kernel);%actual filtering step
26 end
27end
28
29%% Start 1-D filtering col-wise first.
30
31for i=startRow:endRow
32 for j=startCol:endCol
33 imageOut(i,j) = sum(tempOut(i-halfKernel:i+halfKernel,j).*kernel')/sum(kernel);%kernel to be transposed for performing multiplcation
34 end
35end
36
diff --git a/SD-VBS/benchmarks/tracking/src/matlab/imageResize.m b/SD-VBS/benchmarks/tracking/src/matlab/imageResize.m
deleted file mode 100755
index e5fa7b8..0000000
--- a/SD-VBS/benchmarks/tracking/src/matlab/imageResize.m
+++ /dev/null
@@ -1,50 +0,0 @@
1function [imageOut] = imageResize(imageIn)
2
3 imageIn = double(imageIn);
4 imsize = size(imageIn);
5 rows = imsize(1);
6 cols = imsize(2);
7
8 %% level 1 is the base image.
9
10 outputRows = floor((rows+1)/2);
11 outputCols = floor((cols+1)/2);
12
13 kernel = [1,4,6,4,1];
14 kernelSize = 5;
15
16 temp = zeros(rows, outputCols);%initalize output image to all zeros
17 imageOut = zeros(outputRows, outputCols);%initalize output image to all zeros
18 imageIn = double(imageIn);%convert to double to allow image arithmetic
19
20 initialCol = 3; %((kernelSize+1)/2);
21 endCol = cols - 2; %round(cols - ((kernelSize+1)/2));
22 halfKernel = 2; %(kernelSize-1)/2;
23
24 initialRow = 3; %((kernelSize+1)/2);
25 endRow = rows - 2; %(rows - ((kernelSize+1)/2));
26
27 %% Start 1-D filtering row-wise first.
28
29 for i=initialRow:endRow
30 k = 1;
31 for j=initialCol:2:endCol
32 temp(i,k) = sum(imageIn(i,j-halfKernel:j+halfKernel).*kernel)/sum(kernel);%actual filtering step
33 k = k+1;
34 end
35 end
36
37 %imshow(uint8(temp));
38
39 %% Start 1-D filtering col-wise first.
40%
41 kernelT = kernel';
42 j = 1;
43 for i=initialRow:2:endRow
44 for k=1:outputCols
45 imageOut(j,k) = sum(temp(i-halfKernel:i+halfKernel,k).*kernelT)/sum(kernel);%kernel to be transposed for performing multiplcation
46 end
47 j = j + 1;
48 end
49
50% %imshow(uint8(imageOut));
diff --git a/SD-VBS/benchmarks/tracking/src/matlab/rgb2gray_f2_f3.m b/SD-VBS/benchmarks/tracking/src/matlab/rgb2gray_f2_f3.m
deleted file mode 100755
index 23397a3..0000000
--- a/SD-VBS/benchmarks/tracking/src/matlab/rgb2gray_f2_f3.m
+++ /dev/null
@@ -1,16 +0,0 @@
1%! _rgb2gray_f2_f3
2
3function grayImage = rgb2gray_f2_f3(colorImage)
4
5%0.2989 * R + 0.5870 * G + 0.1140 * B
6rows = size(colorImage, 1);
7cols = size(colorImage, 2);
8rgb = size(colorImage, 3);
9
10grayImage = zeros(rows, cols);
11for i = 1:rows
12 for j = 1:cols
13 grayImage(i,j) = 0.2989 * colorImage(i,j,1) + 0.5870 * colorImage(i,j,2) + 0.1140 * colorImage(i,j,3);
14 end
15end
16 \ No newline at end of file
diff --git a/SD-VBS/benchmarks/tracking/src/matlab/script_run_profile.m b/SD-VBS/benchmarks/tracking/src/matlab/script_run_profile.m
deleted file mode 100755
index 62d367f..0000000
--- a/SD-VBS/benchmarks/tracking/src/matlab/script_run_profile.m
+++ /dev/null
@@ -1,178 +0,0 @@
1function script_run_profile(dataDir, resultDir, type, common, toolDir)
2
3if(~isdeployed)
4 addpath(fullfile(toolDir, '/lagrcv/'));
5 addpath(fullfile(toolDir, '/toolbox_basic/filter/'));
6 addpath(fullfile(toolDir, '/ikkjin/'));
7end
8IMAGE_DIR=dataDir;
9
10path(path,common);
11
12tol = 2;
13
14%% Input params
15N_FEA=1600;
16WINSZ=4; %size of sum-up window
17NO_PYR=2;
18SUPPRESION_RADIUS=10;
19LK_ITER=20;
20counter = 2;
21accuracy = 0.03;
22
23if(strcmp(type,'test'))
24 WINSZ = 2;
25 N_FEA = 10;
26 LK_ITER = 2;
27 counter = 2;
28 accuracy = 0.1;
29elseif(strcmp(type, 'sim_fast'))
30 WINSZ = 2;
31 N_FEA = 100;
32 LK_ITER = 2;
33 counter = 4;
34elseif(strcmp(type,'sim'))
35 WINSZ = 2;
36 N_FEA = 200;
37 LK_ITER = 2;
38 counter = 4;
39elseif(strcmp(type,'sqcif'))
40 WINSZ = 8;
41 N_FEA = 500;
42 LK_ITER = 15;
43 counter = 2;
44elseif(strcmp(type, 'qcif'))
45 WINSZ = 12;
46 N_FEA = 400;
47 LK_ITER = 15;
48 counter = 4;
49elseif(strcmp(type,'cif'))
50 WINSZ = 20;
51 N_FEA = 500;
52 LK_ITER = 20;
53 counter = 4;
54elseif(strcmp(type, 'vga'))
55 WINSZ = 32;
56 N_FEA = 400;
57 LK_ITER = 20;
58 counter = 4;
59elseif(strcmp(type,'fullhd'))
60 WINSZ = 48;
61 N_FEA = 500;
62 LK_ITER = 20;
63 counter = 4;
64elseif(strcmp(type,'wuxga'))
65 WINSZ = 64;
66 N_FEA = 500;
67 LK_ITER = 20;
68 counter = 4;
69end
70
71imgName = [dataDir, '/1.bmp'];
72Icur=readImage(imgName);
73
74[rows,cols] = size(Icur);
75fprintf(1,'Input size\t\t- (%dx%d)\n', rows, cols);
76
77%% Timing
78start = photonStartTiming;
79
80Icur = imageBlur(double(Icur));
81
82 Jpyr = cell(2,1);
83 Jpyr{1} = Icur;
84 Jpyr{2} = imageResize(Icur);
85
86 [dX, dY] = calcSobel(double(Icur));
87 sizeWin = size(dX);
88 [lambda, tr, det, c_xx, c_xy, c_yy] = calcGoodFeature(dX, dY, sizeWin(2), sizeWin(1), WINSZ, dataDir);
89
90imgsz=size(lambda);
91lambda([1:WINSZ,end-WINSZ:end],:)=0;
92lambda(:,[1:WINSZ,end-WINSZ:end])=0;
93
94[temp,idx]=sort(lambda(:), 'descend');
95featureIdx=idx(1:N_FEA);
96features=zeros(3, N_FEA);
97features(1,:)=ceil(featureIdx/imgsz(1));
98
99fIdxT = featureIdx';
100features(2,:)=fIdxT-(features(1,:)-1)*imgsz(1);
101features(3,:)=lambda(featureIdx);
102
103for i=1:N_FEA
104 features(3,i) = lambda(idx(i));
105end
106
107f1T = features(1,:)';
108f2T = features(2,:)';
109f3T = features(3,:)';
110
111interestPnt=getANMS(f1T, f2T, f3T, SUPPRESION_RADIUS, dataDir);
112
113interestPnt=interestPnt';
114features=interestPnt(1:2,:);
115
116%% Timing
117endC = photonEndTiming;
118elapsed = photonReportTiming(start, endC);
119
120for iter=1:counter
121 imgName = [dataDir, '/', num2str(iter), '.bmp'];
122 Iprev=Icur;
123 Icur=readImage(imgName);
124
125 %% Self check params
126 tol = 0.1;
127 %% Timing
128 start = photonStartTiming;
129
130 Icur = imageBlur(double(Icur));
131
132 Ipyr=Jpyr;
133
134 Jpyr = cell(2,1);
135 Jpyr{1} = Icur;
136 Jpyr{2} = imageResize(Icur);
137
138 dxPyr = cell(2,1);
139 dyPyr = cell(2,1);
140
141 [dxPyr{1}, dyPyr{1}] = calcSobel(Jpyr{1});
142 [dxPyr{2}, dyPyr{2}] = calcSobel(Jpyr{2});
143
144 sizeWin = size(dxPyr{2});
145 nFeatures = size(features);
146
147 [newpoints, currStatus] = calcPyrLKTrack(Ipyr, dxPyr, dyPyr, Jpyr, double(features), nFeatures(2), WINSZ, 0.03, LK_ITER);
148
149 newpoints=newpoints(:,find(currStatus));
150
151 %% Timing
152 stop = photonEndTiming;
153
154 temp = photonReportTiming(start, stop);
155 elapsed(1) = elapsed(1) + temp(1);
156 elapsed(2) = elapsed(2) + temp(2);
157
158% figure(1);
159% imagesc(Icur);colormap gray
160% hold on;
161% scatter(newpoints(1,:), newpoints(2,:), 'r+');
162% hold off;
163% drawnow
164%
165 features=newpoints;
166
167end
168
169%% Self checking
170fWriteMatrix(features, dataDir);
171
172photonPrintTiming(elapsed);
173
174if(~isdeployed)
175 rmpath(fullfile(toolDir, '/lagrcv/'));
176 rmpath(fullfile(toolDir, '/toolbox_basic/filter/'));
177 rmpath(fullfile(toolDir, '/ikkjin/'));
178end