Skip to main content
. 2020 Feb 12;20(4):975. doi: 10.3390/s20040975
Algorithm for ORB-TPLGD
Input: Image data
Output: Feature description vector for each feature point
1: Extract feature points set P={p1,p2,,pi,,pN} from input image
2: for i=1,2,,N do
3:   Define neighborhood W of M× M around feature point pi
4:    In W, T three-patch groups are selected using Gaussian function, coordinates of the center point is Z={zt}t=1T={[(xt1,yt1),(xt2,yt2),(xt3,yt3)]}t=1T
5:   Define k×k size patches St1,St2,St3 centered on point (xt1,yt1),(xt2,yt2),(xt3,yt3), S={St}t=1T={[St1,St2,St3]}t=1T
6:   for j = 1,2,,T do
7:      if f(St1)<f(St2)   & f(St1)<f(St3) then bit = 1
8:      else then bit = 0
9:      end if
10:   end for (obtain a binary string bW)
11:   Calculate the difference within all three pixel patches groups Q= {Qt}t=1T={Qt1=|f(St1)f(St2)|,Qt2=|f(St1)f(St3)|}t=1T
      Calculate the mean of all differences Qaverage
12:    for j = 1,2,,T do
13:      if Qaverage<Qt1  & Qaverage<Qt2 then bit = 1
14:      else then bit = 0
15:      end if
16:   end for (obtain a binary string bw^)
17:     bW and bw^ are fused to get final Descriptionkeypoint
18: end for