Skip to main content

Derivative

Gradient filter but using predefined kernels.

Check options and parameters of derivative method

caution

This method works only with images.

Derivative filter is a special case of a gradient filter, therefore it uses gradient algorithm. However, the key difference are the kernels used in this very algorithm. In ImageJS there are three distinguished kernels: Sobel, Scharr and Prewitt.

placeholderplaceholder
Ran in 0.00μs (Infinity ops/s)

Parameters and default values

  • options

Options

PropertyRequiredDefault value
bitDepthnoimage.bitDepth
borderTypenoreplicate
borderValueno0
filternosobel
  • Sobel kernel

KernelX=[101202101]KernelX = \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix}

KernelY=[121000121]KernelY = \begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end{bmatrix}

  • Scharr kernel

KernelX=[30310010303]KernelX = \begin{bmatrix} 3 & 0 & -3 \\ 10 & 0 & -10 \\ 3 & 0 & -3 \end{bmatrix}

KernelY=[31030003103]KernelY = \begin{bmatrix} 3 & 10 & 3 \\ 0 & 0 & 0 \\ -3 & -10 & -3 \end{bmatrix}

  • Prewitt kernel

KernelX=[101101101]KernelX = \begin{bmatrix} 1 & 0 & -1 \\ 1 & 0 & -1 \\ 1 & 0 & -1 \end{bmatrix}

KernelY=[111000111]KernelY = \begin{bmatrix} 1 & 1 & 1 \\ 0 & 0 & 0 \\ -1 & -1 & -1 \end{bmatrix}

info

As was mentioned, derivative filter is a type of gradient filter. Therefore using the same kernels with gradient filter will provide the same image output. Derivative filter simplifies some kernel's application.

Applying Sobel kernel using gradient filter

return image.gradientFilter({
kernelX: [
[-1, 0, 1],
[-2, 0, 2],
[-1, 0, 1],
],
kernelY: [
[-1, -2, -1],
[0, 0, 0],
[1, 2, 1],
],
});

Applying Sobel kernel using derivative filter

return image.derivativeFilter({ filter: 'sobel' });