Class OrientationHistogram<D extends ImageGray<D>>

java.lang.Object
boofcv.alg.feature.orientation.OrientationHistogram<D>
All Implemented Interfaces:
OrientationGradient<D>, RegionOrientation
Direct Known Subclasses:
ImplOrientationHistogram_F32, ImplOrientationHistogram_S16, ImplOrientationHistogram_S32

public abstract class OrientationHistogram<D extends ImageGray<D>> extends Object implements OrientationGradient<D>

Estimates the orientation by creating a histogram of discrete angles around the entire circle. The angle with the largest sum of edge intensities is considered to be the direction of the region. If weighted a Gaussian kernel centered around the targeted pixel is used.

  • Field Details

    • objectToSample

      protected double objectToSample
    • radiusScale

      protected int radiusScale
    • derivX

      protected D extends ImageGray<D> derivX
    • derivY

      protected D extends ImageGray<D> derivY
    • rect

      protected ImageRectangle rect
    • numAngles

      protected int numAngles
    • sumDerivX

      protected double[] sumDerivX
    • sumDerivY

      protected double[] sumDerivY
    • angleDiv

      protected double angleDiv
    • angleRound

      protected double angleRound
    • isWeighted

      protected boolean isWeighted
    • weights

      protected Kernel2D_F32 weights
  • Constructor Details

    • OrientationHistogram

      protected OrientationHistogram(double objectToSample, int numAngles, boolean isWeighted)
      Constructor. Specify region size and if it is weighted or not.
      Parameters:
      objectToSample - Converts the size of the object to the sample region size
      numAngles - Number of discrete angles that the orientation is estimated inside of
  • Method Details

    • getObjectToSample

      public double getObjectToSample()
    • setObjectToSample

      public void setObjectToSample(double objectToSample)
      Specify the size of the region that is considered.
    • getWeights

      public Kernel2D_F32 getWeights()
    • setObjectRadius

      public void setObjectRadius(double objectRadius)
      Description copied from interface: RegionOrientation
      Specifies the circle's radius that the orientation should be
      Specified by:
      setObjectRadius in interface RegionOrientation
      Parameters:
      objectRadius - Object's radius.
    • setImage

      public void setImage(D derivX, D derivY)
      Description copied from interface: OrientationGradient
      Specifies input image data for estimating orientation.
      Specified by:
      setImage in interface OrientationGradient<D extends ImageGray<D>>
      Parameters:
      derivX - Image derivative along x-axis.
      derivY - Image derivative along y-axis.
    • compute

      public double compute(double X, double Y)
      Description copied from interface: RegionOrientation
      Computes the orientation of a region about its center.
      Specified by:
      compute in interface RegionOrientation
      Parameters:
      X - Center of the region in image pixels.
      Y - Center of the region in image pixels.
      Returns:
      Orientation in radians. Angle zero points along x-axis and pi/2 along y-axis.
    • computeUnweightedScore

      protected abstract void computeUnweightedScore()
      Compute the score without using the optional weights
    • computeWeightedScore

      protected abstract void computeWeightedScore(int c_x, int c_y)
      Compute the score using the weighting kernel.