Validation Status of DataLab#

Functional validation#

In DataLab, functional validation is based on a classic test strategy (see Functional validation).

Test coverage is around 90%, with more than 200 tests.

Technical validation#

This paragraph provides the validation status of compute functions in DataLab (this is what we call technical validation, see Technical Validation).

Note

This is a work in progress: the tables below are updated continuously as new functions are validated or test code is adapted (the tables are generated from the test code). Some functions are already validated but do not appear in the list below yet, while others are still in the validation process.

Warning

The validation status must not be confused with the test coverage. The validation status indicates whether the function has been validated against ground-truth data or analytical models. The test coverage indicates the percentage of the code that is executed by the test suite, but it does not necessarily take into account the correctness of the results (DataLabā€™s test coverage is around 90%).

Validation Statistics#

Category

Signal

Image

Total

Number of compute functions

51

94

145

Number of validated compute functions

44

79

123

Percentage of validated compute functions

86%

84%

84%

Signal Compute Functions#

The table below shows the validation status of signal compute functions in DataLab. It is automatically generated from the source code.

Validation status of signal compute functions#

Compute function

Description

Test function

compute_abs

Compute absolute value with numpy.absolute

test_signal_abs

compute_addition

Add dst and src signals and return dst signal modified in place

test_signal_addition

compute_addition_constant

Add dst and a constant value and return a the new result signal object

test_signal_addition_constant

compute_arithmetic

Perform arithmetic operation on two signals

test_signal_arithmetic

compute_astype

Convert data type with numpy.astype()

test_signal_astype

compute_bandwidth_3db

Compute bandwidth at -3 dB with cdl.algorithms.signal.bandwidth()

test_signal_bandwidth_3db

compute_calibration

Compute linear calibration

test_signal_calibration

compute_clip

Compute maximum data clipping with numpy.clip()

test_signal_clip

compute_contrast

Compute contrast with cdl.algorithms.signal.contrast()

test_signal_contrast

compute_convolution

Compute convolution of two signals

test_signal_convolution

compute_derivative

Compute derivative with numpy.gradient()

test_signal_derivative

compute_detrending

Detrend data with scipy.signal.detrend()

N/A

compute_difference

Compute difference between two signals

test_signal_difference

compute_difference_constant

Subtract a constant value from a signal

test_signal_difference_constant

compute_division

Compute division between two signals

test_signal_division

compute_division_constant

Divide a signal by a constant value

test_signal_division_constant

compute_dynamic_parameters

Compute Dynamic parameters

test_dynamic_parameters

compute_exp

Compute exponential with numpy.exp

test_signal_exp

compute_fft

Compute FFT with cdl.algorithms.signal.fft1d()

test_signal_fft

compute_filter

Compute frequency filter (low-pass, high-pass, band-pass, band-stop)

N/A

compute_fw1e2

Compute FW at 1/eĀ² with cdl.algorithms.signal.fw1e2()

test_signal_fw1e2

compute_fwhm

Compute FWHM with cdl.algorithms.signal.fwhm()

test_signal_fwhm

compute_gaussian_filter

Compute gaussian filter with scipy.ndimage.gaussian_filter()

test_signal_gaussian_filter

compute_histogram

Compute histogram with numpy.histogram()

N/A

compute_ifft

Compute iFFT with cdl.algorithms.signal.ifft1d()

test_signal_ifft

compute_im

Compute imaginary part with numpy.imag()

test_signal_im

compute_integral

Compute integral with scipy.integrate.cumulative_trapezoid()

test_signal_integral

compute_interpolation

Interpolate data with cdl.algorithms.signal.interpolate()

N/A

compute_log10

Compute Log10 with numpy.log10

test_signal_log10

compute_magnitude_spectrum

Compute magnitude spectrum

test_signal_magnitude_spectrum

compute_moving_average

Compute moving average with scipy.ndimage.uniform_filter()

test_signal_moving_average

compute_moving_median

Compute moving median with scipy.ndimage.median_filter()

test_signal_moving_median

compute_normalize

Normalize data with cdl.algorithms.signal.normalize()

test_signal_normalize

compute_offset_correction

Correct offset: subtract the mean value of the signal in the specified range

test_signal_offset_correction

compute_peak_detection

Peak detection with cdl.algorithms.signal.peak_indexes()

N/A

compute_phase_spectrum

Compute phase spectrum

test_signal_phase_spectrum

compute_power

Compute power with numpy.power

test_signal_power

compute_product

Multiply dst and src signals and return dst signal modified in place

test_signal_product

compute_product_constant

Multiply dst by a constant value and return the new result signal object

test_signal_product_constant

compute_psd

Compute power spectral density

test_signal_psd

compute_quadratic_difference

Compute quadratic difference between two signals

test_quadratic_difference

compute_re

Compute real part with numpy.real()

test_signal_re

compute_resampling

Resample data with cdl.algorithms.signal.interpolate()

N/A

compute_reverse_x

Reverse x-axis

test_signal_reverse_x

compute_sampling_rate_period

Compute sampling rate and period

test_signal_sampling_rate_period

compute_sqrt

Compute square root with numpy.sqrt

test_signal_sqrt

compute_stats

Compute statistics on a signal

test_signal_stats_unit

compute_swap_axes

Swap axes

test_signal_swap_axes

compute_wiener

Compute Wiener filter with scipy.signal.wiener()

test_signal_wiener

compute_windowing

Compute windowing (available methods: hamming, hanning, bartlett, blackman

N/A

compute_x_at_minmax

Compute x at min/max

test_signal_x_at_minmax

Image Compute Functions#

The table below shows the validation status of image compute functions in DataLab. It is automatically generated from the source code.

Validation status of image compute functions#

Compute function

Description

Test function

compute_abs

Compute absolute value with numpy.absolute

test_image_abs

compute_addition

Add dst and src images and return dst image modified in place

test_image_addition

compute_addition_constant

Add dst and a constant value and return the new result image object

test_image_addition_constant

compute_arithmetic

Compute arithmetic operation on two images

test_image_arithmetic

compute_astype

Convert image data type with cdl.algorithms.datatypes.clip_astype()

test_image_astype

compute_average_profile

Compute horizontal or vertical average profile

N/A

compute_binning

Binning function on data with cdl.algorithms.image.binning()

test_binning

compute_butterworth

Compute Butterworth filter with skimage.filters.butterworth()

test_butterworth

compute_calibration

Compute linear calibration

test_image_calibration

compute_centroid

Compute centroid

test_image_centroid

compute_clip

Apply clipping with numpy.clip()

test_image_clip

compute_difference

Compute difference between two images

test_image_difference

compute_difference_constant

Subtract a constant value from an image and return the new result image object

test_image_difference_constant

compute_division

Compute division between two images

test_image_division

compute_division_constant

Divide an image by a constant value and return the new result image object

test_image_division_constant

compute_enclosing_circle

Compute minimum enclosing circle

N/A

compute_exp

Compute exponential with numpy.exp

test_image_exp

compute_fft

Compute FFT with cdl.algorithms.image.fft2d()

test_image_fft

compute_flatfield

Compute flat field correction with cdl.algorithms.image.flatfield()

N/A

compute_fliph

Flip data horizontally with numpy.fliplr()

test_image_fliph

compute_flipv

Flip data vertically with numpy.flipud()

test_image_flipv

compute_gaussian_filter

Compute gaussian filter with scipy.ndimage.gaussian_filter()

test_image_gaussian_filter

compute_histogram

Compute histogram of the image data, with numpy.histogram()

N/A

compute_hough_circle_peaks

Compute Hough circles

N/A

compute_ifft

Compute inverse FFT with cdl.algorithms.image.ifft2d()

test_image_ifft

compute_im

Compute imaginary part with numpy.imag()

test_image_im

compute_line_profile

Compute horizontal or vertical profile

N/A

compute_log10

Compute log10 with numpy.log10

test_image_log10

compute_logp1

Compute log10(z+n) with numpy.log10

test_image_logp1

compute_magnitude_spectrum

Compute magnitude spectrum

test_image_magnitude_spectrum

compute_moving_average

Compute moving average with scipy.ndimage.uniform_filter()

test_image_moving_average

compute_moving_median

Compute moving median with scipy.ndimage.median_filter()

test_image_moving_median

compute_normalize

test_image_normalize

compute_offset_correction

Apply offset correction

test_image_offset_correction

compute_phase_spectrum

Compute phase spectrum

test_image_phase_spectrum

compute_product

Multiply dst and src images and return dst image modified in place

test_image_product

compute_product_constant

Multiply dst by a constant value and return the new result image object

test_image_product_constant

compute_psd

Compute power spectral density

test_image_psd

compute_quadratic_difference

Compute quadratic difference between two images

test_quadratic_difference

compute_radial_profile

Compute radial profile around the centroid

N/A

compute_re

Compute real part with numpy.real()

test_image_re

compute_resize

Zooming function with scipy.ndimage.zoom()

N/A

compute_rotate

Rotate data with scipy.ndimage.rotate()

test_image_rotate

compute_rotate270

Rotate data 270Ā° with numpy.rot90()

test_image_rotate270

compute_rotate90

Rotate data 90Ā° with numpy.rot90()

test_image_rotate90

compute_segment_profile

Compute segment profile

N/A

compute_stats

Compute statistics on an image

test_image_stats_unit

compute_swap_axes

Swap image axes with numpy.transpose()

test_image_swap_axes

compute_wiener

Compute Wiener filter with scipy.signal.wiener()

test_image_wiener

compute_blob_dog

Compute blobs using Difference of Gaussian method

N/A

compute_blob_doh

Compute blobs using Determinant of Hessian method

N/A

compute_blob_log

Compute blobs using Laplacian of Gaussian method

N/A

compute_blob_opencv

Compute blobs using OpenCV

N/A

compute_contour_shape

Compute contour shape fit

N/A

compute_peak_detection

Compute 2D peak detection

N/A

compute_canny

Compute Canny filter with skimage.feature.canny()

test_canny

compute_farid

Compute Farid filter with skimage.filters.farid()

test_farid

compute_farid_h

Compute horizontal Farid filter with skimage.filters.farid_h()

test_farid_h

compute_farid_v

Compute vertical Farid filter with skimage.filters.farid_v()

test_farid_v

compute_laplace

Compute Laplace filter with skimage.filters.laplace()

test_laplace

compute_prewitt

Compute Prewitt filter with skimage.filters.prewitt()

test_prewitt

compute_prewitt_h

Compute horizontal Prewitt filter with skimage.filters.prewitt_h()

test_prewitt_h

compute_prewitt_v

Compute vertical Prewitt filter with skimage.filters.prewitt_v()

test_prewitt_v

compute_roberts

Compute Roberts filter with skimage.filters.roberts()

test_roberts

compute_scharr

Compute Scharr filter with skimage.filters.scharr()

test_scharr

compute_scharr_h

Compute horizontal Scharr filter with skimage.filters.scharr_h()

test_scharr_h

compute_scharr_v

Compute vertical Scharr filter with skimage.filters.scharr_v()

test_scharr_v

compute_sobel

Compute Sobel filter with skimage.filters.sobel()

test_sobel

compute_sobel_h

Compute horizontal Sobel filter with skimage.filters.sobel_h()

test_sobel_h

compute_sobel_v

Compute vertical Sobel filter with skimage.filters.sobel_v()

test_sobel_v

compute_adjust_gamma

Gamma correction with skimage.exposure.adjust_gamma()

test_adjust_gamma

compute_adjust_log

Compute log correction with skimage.exposure.adjust_log()

test_adjust_log

compute_adjust_sigmoid

Compute sigmoid correction with skimage.exposure.adjust_sigmoid()

test_adjust_sigmoid

compute_equalize_adapthist

Adaptive histogram equalization

test_equalize_adapthist

compute_equalize_hist

Histogram equalization with skimage.exposure.equalize_hist()

test_equalize_hist

compute_rescale_intensity

Rescale image intensity levels

test_rescale_intensity

compute_black_tophat

Compute Black Top-Hat with skimage.morphology.black_tophat()

test_black_tophat

compute_closing

Compute morphological closing with skimage.morphology.closing()

test_closing

compute_dilation

Compute Dilation with skimage.morphology.dilation()

test_dilation

compute_erosion

Compute Erosion with skimage.morphology.erosion()

test_erosion

compute_opening

Compute morphological opening with skimage.morphology.opening()

test_opening

compute_white_tophat

Compute White Top-Hat with skimage.morphology.white_tophat()

test_white_tophat

compute_denoise_bilateral

Compute bilateral filter denoising

test_denoise_bilateral

compute_denoise_tophat

Denoise using White Top-Hat

test_denoise_tophat

compute_denoise_tv

Compute Total Variation denoising

test_denoise_tv

compute_denoise_wavelet

Compute Wavelet denoising

test_denoise_wavelet

compute_threshold

Compute the threshold, using one of the available algorithms

test_threshold

compute_threshold_isodata

Compute the threshold using the Isodata algorithm with default parameters

test_threshold_isodata

compute_threshold_li

Compute the threshold using the Li algorithm with default parameters

test_threshold_li

compute_threshold_mean

Compute the threshold using the Mean algorithm

test_threshold_mean

compute_threshold_minimum

Compute the threshold using the Minimum algorithm with default parameters

test_threshold_minimum

compute_threshold_otsu

Compute the threshold using the Otsu algorithm with default parameters

test_threshold_otsu

compute_threshold_triangle

Compute the threshold using the Triangle algorithm with default parameters

test_threshold_triangle

compute_threshold_yen

Compute the threshold using the Yen algorithm with default parameters

test_threshold_yen