Poiché l'elaborazione richiede molto tempo, la libreria fornisce un executor che restituisce un futuro, per evitare di bloccare l'esecuzione del chiamante mentre l'elaborazione è in corso.
I calcoli paralleli sono facilmente supportati per l'utilizzo di più thread.
La classe RadonTransformCalculator calcola i valori di trasformazione e li memorizza in un array bidimensionale.
Dopo l'elaborazione, i valori di trasformazione possono essere analizzati utilizzando gli indici array per accedervi.
Questi indici possono essere facilmente tradotti in un elemento (Rho, Theta) (, ) chiamando la funzione sull'oggetto risultato, che è di tipo RadonTransformResult.
È anche possibile ottenere i valori massimi N, dando la possibilità di scartare i duplicati (diversi (, ) che sono molto vicini) attraverso una tolleranza, e un filtro può anche essere applicato contemporaneamente su (, ) per scartare in anticipo quelli che non soddisfano le nostre condizioni.
Ad esempio, se stai cercando linee quasi orizzontali o verticali, e c'è una diagonale con un valore molto alto, allora quel valore potrebbe essere scartato.