Operations on Images#

This section describes the operations that can be performed on images.

See also

Processing Images for more information on image processing features, or Analysis features on Images for information on analysis features on images.

../../_images/i_operation.png

Screenshot of the ā€œOperationsā€ menu.#

When the ā€œImage Panelā€ is selected, the menus and toolbars are updated to provide image-related actions.

The ā€œOperationsā€ menu allows you to perform various operations on the current image or group of images. It also allows you to extract profiles, distribute images on a grid, or resize images.

Operations with a constant#

Create a new image which is the result of a constant operation on each selected image:

Operation

Equation

constant_add Add

\(z_{k} = z_{k-1} + conv(c)\)

constant_subtract Subtract

\(z_{k} = z_{k-1} - conv(c)\)

constant_multiply Multiply

\(z_{k} = conv(z_{k-1} \times c)\)

constant_divide Divide

\(z_{k} = conv(\dfrac{z_{k-1}}{c})\)

where \(c\) is the constant value and \(conv\) is the conversion function which handles data type conversion (keeping the same data type as the input image).

Basic arithmetic operations#

Arithmetic operations are performed pixel by pixel between the selected images.

Operation

Description

sum Sum

\(z_{M} = \sum_{k=0}^{M-1}{z_{k}}\)

difference Difference

\(z_{2} = z_{1} - z_{0}\)

product Product

\(z_{M} = \prod_{k=0}^{M-1}{z_{k}}\)

division Division

\(z_{2} = \dfrac{z_{1}}{z_{0}}\)

inverse Inverse

\(z_{2} = \dfrac{1}{z_{1}}\)

exponential Exponential

\(z_{2} = \exp(z_{1})\)

logarithm Logarithm (base 10)

\(z_{2} = \log_{10}(z_{1})\)

Basic mathematical functions#

Function

Description

exp Exponential

\(z_{k} = \exp(z_{k})\)

log10 Logarithm (base 10)

\(z_{k} = \log_{10}(z_{k})\)

Log10(z+10)

\(z_{k} = \log_{10}(z_{k}+n)\) (useful if image background is zero)

Convolution and Deconvolution#

Operation

Implementation

convolution Convolution

Based on scipy.signal.convolve

deconvolution Deconvolution

Frequency domain deconvolution

Absolute value and complex image operations#

Operation

Description

abs Absolute value

\(z_{k} = |z_{k-1}|\)

phase Phase (argument)

sigima.proc.image.phase()

complex_from_magnitude_phase Combine with phase

Consider current image as the module and allow to select a image representing the phase to merge them in a complex image sigima.proc.image.complex_from_magnitude_phase()

re Real part

\(z_{k} = \Re(z_{k-1})\)

im Imaginary part

\(z_{k} = \Im(z_{k-1})\)

complex_from_real_imag Combine with imaginary part

Consider current image as the real part and allow to select a image representing the imaginary part to merge them in a complex image sigima.proc.image.complex_from_real_imag()

Data type conversion#

The ā€œConvert data typeā€ convert_dtype action allows you to convert the data type of the selected images. For integer data types, the conversion is done by clipping the values to the new data type range before effectively converting the data type. For floating point data types, the conversion is straightforward.

Note

Data type conversion uses the sigima.tools.datatypes.clip_astype() function which relies on numpy.ndarray.astype() function with the default parameters (casting=’unsafe’).

Statistics between images#

Create a new image which is the result of a statistical operation on each pixel of the selected images:

Operation

Description

average Average

\(z_{M} = \dfrac{1}{M}\sum_{k=0}^{M-1}{z_{k}}\)

standard_deviation Standard Deviation

\(z_{M} = \sqrt{\dfrac{1}{M}\sum_{k=0}^{M-1}{(y_{k} - \bar{y})^{2}}}\)

quadratic_difference Quadratic difference

\(z_{2} = \dfrac{z_{1} - z_{0}}{\sqrt{2}}\)

Flat-field correction#

Create a new image which is flat-field correction of the two selected images:

\[\begin{split}z_{1} = \begin{cases} \dfrac{z_{0}}{z_{f}}.\overline{z_{f}} & \text{if } z_{0} > z_{threshold} \\ z_{0} & \text{otherwise} \end{cases}`\end{split}\]

where \(z_{0}\) is the raw image, \(z_{f}\) is the flat field image, \(z_{threshold}\) is an adjustable threshold and \(\overline{z_{f}}\) is the flat field image average value:

\[\overline{z_{f}}= \dfrac{1}{N_{row}.N_{col}}.\sum_{i=0}^{N_{row}}\sum_{j=0}^{N_{col}}{z_{f}(i,j)}\]

Note

Raw image and flat field image are supposedly already corrected by performing a dark frame subtraction.