Skip to main content
. 2019 Dec 31;20(1):237. doi: 10.3390/s20010237
Algorithm 1 Ground points extraction
Input: Range image R, ground angle threshold γ, Label=1, windowsize
Output: L
  •  1:

    functionGroundpointextraction(R,Label,L,γ,windowsize )

  •  2:

        A=CreateAngleImage(R)

  •  3:

        S=ApplySavitskyGolaySmoothing(A,windowsize)

  •  4:

        L=zeros(Rrows×Rcols)

  •  5:

        for r=Srows; r ≥ 1; r do

  •  6:

            for c=1;cScols;c++ do

  •  7:

               if L(r,c)=0 then

  •  8:

                   queue.push(r,c)

  •  9:

                   while queue is not empty do

  • 10:

                       r,c=queue.top()

  • 11:

                       L(r,c)=Label

  • 12:

                       for (rn,cn)Neighborhood(r,c) do

  • 13:

                           g=S(r,c)S(rn,cn)

  • 14:

                           if fabs(g)<γ then

  • 15:

                              queue.push(rn,cn)

  • 16:

                           end if

  • 17:

                       end for

  • 18:

                       queue.pop()

  • 19:

                   end while

  • 20:

               end if

  • 21:

            end for

  • 22:

        end for

  • 23:

    end function