3.1.6. Combinations of methods¶
In the previous sections and examples, only a few sinograms with certain types
of stripes were used for demonstration. In practice, one needs to process all
sinograms of a 3D sample where different types of stripes can appear at
different locations or all together in one place. It is impossible for a single
method to remove all of them. Each method has its own advantages and
disadvantages and only works well with the certain types of stripes. As a result,
we have to combine them to remove all types of stripes and reduce extra
artifacts the methods may cause. An efficient combination is that unresponsive
and fluctuating stripes are removed first, then large stripes are removed, and
smaller stripes of the full and partial type are removed last. Removal of large
stripes needs to be performed after removing unresponsive and fluctuating
stripes as explained in section 3.1.5. Methods of
removing smaller stripes need to be employed last because they may enlarge
large stripes.
The following implementation of combining the methods is the simplest and most
efficient because it uses the least number of parameters. More importantly the
same set of parameters can be used for whole dataset.
Code
- sarepy.prep.stripe_removal_original.remove_all_stripe(sinogram, snr, la_size, sm_size, drop_ratio=0.1, norm=True, dim=1)[source]¶
Remove all types of stripe artifacts by combining algorithm 6, 5, 4, and 3 in Ref. [1]. Angular direction is along the axis 0.
- Parameters
sinogram (array_like) – 2D array. Sinogram image.
snr (float) – Ratio used to segment stripes from background noise.
la_size (int) – Window size of the median filter to remove large stripes.
sm_size (int) – Window size of the median filter to remove small-to-medium stripes.
drop_ratio (float, optional) – Ratio of pixels to be dropped, which is used to to reduce the possibility of the false detection of stripes.
norm (bool, optional) – Apply normalization if True.
dim ({1, 2}, optional) – Dimension of the window.
- Returns
ndarray – 2D array. Stripe-removed sinogram.
References
How to use
– The snr parameter controls the sensitivity of the stripe detection method. Smaller is more sensitive. Recommended values: 1.1 -> 3.0.
– The la_size parameter controls the strength of the median filter used for removing large stripes, unresponsive stripes, and fluctuating stripes. la_size can be determined in a straightforward way by the size and the brightness of detector defects. Larger is stronger but more computationally expensive.
– The sm_size parameter controls the strength of the median filter used for removing small-to-medium partial and full stripes.
Another combination of algorithms which removes stripe artifacts based on interpolation instead of using a smoothing filter is shown in section 4.2.