Class GImageDerivativeOps

java.lang.Object
boofcv.alg.filter.derivative.GImageDerivativeOps

public class GImageDerivativeOps extends Object
Generalized operations related to compute different image derivatives.
  • Constructor Details

    • GImageDerivativeOps

      public GImageDerivativeOps()
  • Method Details

    • laplace

      public static <I extends ImageGray<I>, D extends ImageGray<D>> void laplace(I input, D output, BorderType borderType)
    • getDerivativeType

      public static <I extends ImageGray<I>, D extends ImageGray<D>> Class<D> getDerivativeType(Class<I> imageType)
      Returns the type of image the derivative should be for the specified input type.
      Parameters:
      imageType - Input image type.
      Returns:
      Appropriate output image type.
    • getDerivativeType

      public static <I extends ImageBase<I>, D extends ImageBase<D>> ImageType<D> getDerivativeType(ImageType<I> imageType)
    • gradient

      public static <I extends ImageGray<I>, D extends ImageGray<D>> void gradient(DerivativeType type, I input, D derivX, D derivY, BorderType borderType)
      Computes the gradient using the specified image type.
      Type Parameters:
      I - Input image type
      D - Output image type
      Parameters:
      type - Type of gradient to compute
      input - Input image
      derivX - Output. Derivative X
      derivY - Output. Derivative Y
      borderType - How it should handle borders. null == skip border
    • hessian

      public static <I extends ImageGray<I>, D extends ImageGray<D>> void hessian(DerivativeType type, I input, D derivXX, D derivYY, D derivXY, BorderType borderType)
      Computes the hessian from the original input image. Only Sobel and Three supported.
      Type Parameters:
      I - Input image type
      D - Output image type
      Parameters:
      type - Type of gradient to compute
      input - Input image
      derivXX - Output. Derivative XX
      derivYY - Output. Derivative YY
      derivXY - Output. Derivative XY
      borderType - How it should handle borders. null == skip border
    • hessian

      public static <D extends ImageGray<D>> void hessian(DerivativeType type, D derivX, D derivY, D derivXX, D derivYY, D derivXY, BorderType borderType)
      Computes the hessian from the gradient. Only Prewitt, Sobel and Three supported.
      Parameters:
      type - Type of gradient to compute
      derivX - Input derivative X
      derivY - Input derivative Y
      derivXX - Output. Derivative XX
      derivYY - Output. Derivative YY
      derivXY - Output. Derivative XY
      borderType - How it should handle borders. null == skip border
    • lookupKernelX

      public static KernelBase lookupKernelX(DerivativeType type, boolean isInteger)
      Returns the kernel for finding the X derivative.
      Parameters:
      type - Type of gradient
      isInteger - integer or floating point kernels
      Returns:
      The kernel. Can be 1D or 2D
    • createAnyDerivatives

      public static <I extends ImageGray<I>, D extends ImageGray<D>> AnyImageDerivative<I,D> createAnyDerivatives(DerivativeType type, Class<I> inputType, Class<D> derivType)

      Convenience function for creating an instance of AnyImageDerivative. This class is an any way to compute any derivative of any order using the specified kernel. It might use more memory or be more expensive the specialized code but is easy to use.

      Type Parameters:
      I - Image type.
      D - Image derivative type.
      Parameters:
      type - Type of gradient to use
      inputType - Type of input image.
      derivType - Type of derivative image
      Returns:
      AnyImageDerivative
    • derivativeForScaleSpace

      public static <I extends ImageGray<I>, D extends ImageGray<D>> AnyImageDerivative<I,D> derivativeForScaleSpace(Class<I> inputType, Class<D> derivType)
      Creates an instance of AnyImageDerivative which is intended for use of calculating scale-spaces. It uses DerivativeType.THREE since it does not blur the image. More typical operators, such as Sobel and Prewitt, blur the image.
      Type Parameters:
      I - Image type.
      D - Image derivative type.
      Parameters:
      inputType - Type of input image.
      derivType - Type of derivative image
      Returns:
      AnyImageDerivative
    • borderDerivative_I32

      public static ImageBorder_S32 borderDerivative_I32()
      Creates a new instance of the default border for derivatives of integer images
    • borderDerivative_F32

      public static ImageBorder_F32 borderDerivative_F32()
      Creates a new instance of the default border for derivatives of GrayF32