Skip to main content

Derivative

Gradient filter but using predefined kernels.

🖞ïļ Image options and parameters of derivative method

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)

Kinds of images compatible with algorithm​

Image propertyWhat it meansPossible values
bitDepthnumber of bits per channel[8,16]
componentsnumber of components[1]
alphais alpha channel allowedtrue

Parameters and default values​

  • options

Options​

PropertyRequiredDefault value
bitDepthnoimage.bitDepth
borderTypenoreplicate
borderValueno0
filternosobel

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}

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}

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' });