/**
   * Returns the kernel for finding the X derivative.
   *
   * @param type Type of gradient
   * @param isInteger integer or floating point kernels
   * @return The kernel. Can be 1D or 2D
   */
  public static KernelBase lookupKernelX(DerivativeType type, boolean isInteger) {
    switch (type) {
      case PREWITT:
        return GradientPrewitt.getKernelX(isInteger);

      case SOBEL:
        return GradientSobel.getKernelX(isInteger);

      case THREE:
        return GradientThree.getKernelX(isInteger);

      case TWO_0:
        return GradientTwo0.getKernelX(isInteger);

      case TWO_1:
        return GradientTwo1.getKernelX(isInteger);
    }

    throw new IllegalArgumentException("Unknown kernel type: " + type);
  }