XMM-Newton SAS Home Page
XMM-Newton Science Analysis System


imgrad (tools-1.68.1) [xmmsas_20230412_1735-21.0.0]


Description

This task approximates the gradient at each pixel of an image by doing least-squares fitting of a plane to the 3x3 array of values centred on each pixel. Since gradient is a vector quantity, two output images are required. The user can choose between a cartesian representation (in which the output images record the x and y components of the gradient) or a polar representation (in which the output images are the magnitude and azimuth of the gradient.).

`Least-squares fitting of a plane' sounds very grand but in fact the algebra boils down to the following:

$\displaystyle (\nabla I)_{x,y} = \frac{1}{6} \left( \begin{array}{c}
\sum_{j=y-...
...i=x-1}^{x+1} I_{i,y+1} - \sum_{i=x-1}^{x+1} I_{i,y-1} \\
\end{array} \right).
$

Here $I_{x,y}$ represents the image value at the ($x,y$)th pixel.

No gradient value is calculated at the edge: nulls are stored in the output at these pixels. If the input image contains null-valued pixels, all 8 nearest neighbours of such pixels are set to null in the output.

The azimuth, where this is to be calculated, is $\arctan(\nabla_y/\nabla_x)$.



XMM-Newton SOC -- 2023-04-16