AlgART Java Libraries
| Versione | 1.2 |
|---|---|
| Editore | AlgART Laboratory |
| Data di rilascio | Dec 23, 2013 |
| Data aggiunta | Dec 11, 2013 |
| Requisiti del sistema operativo | Windows 2003, Windows 8, Windows Vista, Windows, Windows Server 2008, Windows 7 |
| Requisiti | JDK |
| Download totali | 34 |
| Prezzo | Free |
Descrizione
Librerie Java open source, che supportano array e matrici intelligenti generalizzati con elementi di qualsiasi tipo (1 bit, numeri interi a 8/16/32/64 bit, valori in virgola mobile a 32/64 bit e qualsiasi altro tipo Java). Le librerie contengono un'ampia serie di algoritmi di elaborazione di immagini 2D, 3D e multidimensionali su matrici: filtraggio lineare, morfologia matematica, operazioni di rango, trasformazione spettrale (FFT), ecc. C'è anche la scheletrizzazione e la misurazione di immagini binarie. Le librerie utilizzano l'indirizzamento a 63 bit degli elementi dell'array (tutti gli indici e la lunghezza sono rappresentati da un tipo lungo a 64 bit). Quindi, è teoricamente possibile creare ed elaborare array e matrici contenenti fino a 2^63-1 (~10^19) elementi di qualsiasi tipo primitivo o non primitivo, se il sistema operativo e l'hardware possono fornire la quantità necessaria di memoria o spazio su disco. Il concetto di modello di memoria consente di archiviare array AlgART in schemi diversi, da semplici array Java a file di disco mappati; tutti i trasferimenti di dati necessari vengono eseguiti automaticamente mentre ogni accesso a un elemento o un blocco di elementi. La maggior parte degli algoritmi si basa su un ampio utilizzo di valutazioni pigre. Le operazioni tipiche, come la somma per elemento o le trasformazioni di matrici geometriche, vengono implementate tramite viste pigre dell'array o della matrice di origine. Ad esempio, puoi prendere una matrice multidimensionale, ruotarla (o eseguire qualsiasi altra trasformazione affine o proiettiva) e quindi estrarre una sottomatrice dal risultato. Tutte queste operazioni verranno eseguite virtualmente (non richiedendo tempo) e i calcoli effettivi verranno eseguiti solo al momento dell'accesso agli elementi, solitamente durante la copia della matrice risultante su una nuova creata. Inoltre, in molti casi le librerie "capiranno" da sé che l'utente vuole eseguire la rotazione o un'altra trasformazione, divideranno la matrice in opportuni blocchi rettangolari (adattati alla RAM) e sceglieranno l'algoritmo migliore per questo compito al momento di operazione di copiatura.