httomolibgpu.prep.stripe
#
Module for stripes removal
- httomolibgpu.prep.stripe.raven_filter(data: <cp.ndarray>, pad_y: int = 20, pad_x: int = 20, pad_method: str = 'edge', uvalue: int = 20, nvalue: int = 4, vvalue: int = 2) <cp.ndarray> [source]#
Applies FFT-based Raven filter [5] to a 3D CuPy array. For more detailed information, see Raven filter.
- Parameters
data (cp.ndarray) – Input CuPy 3D array either float32 or uint16 data type.
pad_y (int, optional) – Pad the top and bottom of projections.
pad_x (int, optional) – Pad the left and right of projections.
pad_method (str, optional) – Numpy pad method to use.
uvalue (int, optional) – Cut-off frequency. To control the strength of filter, e.g., strong=10, moderate=20, weak=50.
nvalue (int, optional) – The shape of filter.
vvalue (int, optional) – Number of image-rows around the zero-frequency to be applied the filter.
- Returns
Raven filtered 3D CuPy array in float32 data type.
- Return type
cp.ndarray
- Raises
ValueError – If the input array is not three dimensional.
- httomolibgpu.prep.stripe.remove_all_stripe(data: <cp.ndarray>, snr: float = 3.0, la_size: int = 61, sm_size: int = 21, dim: int = 1) <cp.ndarray> [source]#
Remove all types of stripe artifacts from sinogram using Nghia Vo’s approach, see [9] (combination of algorithm 3,4,5, and 6).
- Parameters
data (ndarray) – 3D tomographic data as a CuPy array.
snr (float, optional) – Ratio used to locate large stripes. Greater is less sensitive.
la_size (int, optional) – Window size of the median filter to remove large stripes.
sm_size (int, optional) – Window size of the median filter to remove small-to-medium stripes.
dim ({1, 2}, optional) – Dimension of the window.
- Returns
Corrected 3D tomographic data as a CuPy or NumPy array.
- Return type
ndarray
- httomolibgpu.prep.stripe.remove_stripe_based_sorting(data: typing.Union[<cp.ndarray>, <cp.ndarray>], size: int = 11, dim: int = 1) Union[<cp.ndarray>, <cp.ndarray>] [source]#
Remove full and partial stripe artifacts from sinogram using Nghia Vo’s approach, see [9]. This algorithm works particularly well for removing partial stripes.
Steps of the algorithm: 1. Sort each column of the sinogram by its grayscale values. 2. Apply a smoothing (median) filter on the sorted image along each row. 3. Re-sort the smoothed image columns to the original rows to get the corrected sinogram.
- Parameters
data (ndarray) – 3D tomographic data as a CuPy or NumPy array.
size (int, optional) – Window size of the median filter.
dim ({1, 2}, optional) – Dimension of the window.
- Returns
Corrected 3D tomographic data as a CuPy or NumPy array.
- Return type
ndarray
- httomolibgpu.prep.stripe.remove_stripe_ti(data: typing.Union[<cp.ndarray>, <cp.ndarray>], beta: float = 0.1) Union[<cp.ndarray>, <cp.ndarray>] [source]#
Removes stripes with the method of V. Titarenko (TomoCuPy implementation). See [6].
- Parameters
data (ndarray) – 3D stack of projections as a CuPy array.
beta (float, optional) – filter parameter, lower values increase the filter strength. Default is 0.1.
- Returns
3D array of de-striped projections.
- Return type
ndarray