Package boofcv.alg.filter.derivative
Class GradientSobel
java.lang.Object
boofcv.alg.filter.derivative.GradientSobel
Computes the image's first derivative along the x and y axises using the Sobel operator.
The Sobel kernel weights the inner most pixels more than ones farther away. This tends to produce better results, but not as good as a gaussian kernel with larger kernel. However, it can be optimized so that it is much faster than a Gaussian.
For integer images, the derivatives in the x and y direction are computed by convolving the following kernels:
y-axis
-0.25 | -0.5 | -0.25 |
0 | 0 | 0 |
0.25 | 0.5 | 0.25 |
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic Kernel2D_F32
static Kernel2D_S32
static Kernel2D_F32
static Kernel2D_S32
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Kernel2D
getKernelX
(boolean isInteger) Returns the kernel for computing the derivative along the x-axis.static void
process
(GrayF32 orig, GrayF32 derivX, GrayF32 derivY, @Nullable ImageBorder_F32 border) Computes the derivative in the X and Y direction using an integer Sobel edge detector.static void
Computes the derivative in the X and Y direction using an integer Sobel edge detector.static void
Computes the derivative in the X and Y direction using an integer Sobel edge detector.process
(I input, D derivX, D derivY, @Nullable ImageBorder border)
-
Field Details
-
kernelDerivX_I32
-
kernelDerivY_I32
-
kernelDerivX_F32
-
kernelDerivY_F32
-
-
Constructor Details
-
GradientSobel
public GradientSobel()
-
-
Method Details
-
getKernelX
Returns the kernel for computing the derivative along the x-axis. -
process
public static <I extends ImageGray<I>,D extends ImageGray<D>> void process(I input, D derivX, D derivY, @Nullable @Nullable ImageBorder border) -
process
public static void process(GrayU8 orig, GrayS16 derivX, GrayS16 derivY, @Nullable @Nullable ImageBorder_S32<GrayU8> border) Computes the derivative in the X and Y direction using an integer Sobel edge detector.- Parameters:
orig
- Input image. Not modified.derivX
- Storage for image derivative along the x-axis. Modified.derivY
- Storage for image derivative along the y-axis. Modified.border
- Specifies how the image border is handled. If null the border is not processed.
-
process
public static void process(GrayS16 orig, GrayS16 derivX, GrayS16 derivY, @Nullable @Nullable ImageBorder_S32<GrayS16> border) Computes the derivative in the X and Y direction using an integer Sobel edge detector.- Parameters:
orig
- Input image. Not modified.derivX
- Storage for image derivative along the x-axis. Modified.derivY
- Storage for image derivative along the y-axis. Modified.border
- Specifies how the image border is handled. If null the border is not processed.
-
process
public static void process(GrayF32 orig, GrayF32 derivX, GrayF32 derivY, @Nullable @Nullable ImageBorder_F32 border) Computes the derivative in the X and Y direction using an integer Sobel edge detector.- Parameters:
orig
- Input image. Not modified.derivX
- Storage for image derivative along the x-axis. Modified.derivY
- Storage for image derivative along the y-axis. Modified.border
- Specifies how the image border is handled. If null the border is not processed.
-
-1 | 0 | 1 |
-2 | 0 | 2 |
-1 | 0 | 1 |