Skip to main content

Derivative

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=[−101−202−101]KernelX = \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix}

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

  • Scharr kernel​

KernelX=[30−3100−1030−3]KernelX = \begin{bmatrix} 3 & 0 & -3 \\ 10 & 0 & -10 \\ 3 & 0 & -3 \end{bmatrix}

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

  • Prewitt kernel​

KernelX=[10−110−110−1]KernelX = \begin{bmatrix} 1 & 0 & -1 \\ 1 & 0 & -1 \\ 1 & 0 & -1 \end{bmatrix}

KernelY=[111000−1−1−1]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' });