Since processing is time-consuming, the library provides an executor that returns a Future, to avoid blocking the caller's execution while processing is in progress.
Parallel calculations are easily supported for using multiple threads.
The RadonTransformCalculator class calculates the transform values and stores them in a two-dimensional array.
After processing, the transformation values can be analyzed using the array indices to access them.
These indices can be easily translated to a (Rho, Theta) (ρ, θ) element by calling the function on the result object, which is of type RadonTransformResult.
It is also possible to obtain the N maximum values, giving the option to discard duplicates (different (ρ, θ) that are very close) through a tolerance, and a filter can also be applied at the same time on (ρ, θ) to discard beforehand those that do not meet our conditions.
For example, if you are looking for almost horizontal or vertical lines, and there is a diagonal with a very high value, then that value could be discarded.