AlgART Java Libraries
| Wersja | 1.2 |
|---|---|
| Wydawca | AlgART Laboratory |
| Data wydania | Dec 23, 2013 |
| Data dodania | Dec 11, 2013 |
| Wymagania systemu operacyjnego | Windows 2003, Windows 8, Windows Vista, Windows, Windows Server 2008, Windows 7 |
| Wymagania | JDK |
| Całkowita liczba pobrań | 34 |
| Cena £ | Free |
Opis
Biblioteki Java typu open source, obsługujące uogólnione inteligentne tablice i macierze z elementami dowolnego typu (1 bit, 8/16/32/64-bitowe liczby całkowite, 32/64-bitowe wartości zmiennoprzecinkowe i dowolne inne typy Java). Biblioteki zawierają szeroki zestaw algorytmów przetwarzania obrazów 2D, 3D i wielowymiarowych na macierzach: filtrowanie liniowe, morfologia matematyczna, operacje rangowe, transformacja spektralna (FFT) itp. Istnieje również szkieletyzacja i pomiary obrazów binarnych. Biblioteki wykorzystują 63-bitowe adresowanie elementów tablicy (wszystkie indeksy i długość są reprezentowane przez typ 64-bit long). Tak więc teoretycznie możliwe jest tworzenie i przetwarzanie tablic i macierzy zawierających do 2^63-1 (~10^19) elementów dowolnego typu prymitywnego lub nieprymitywnego, jeśli system operacyjny i sprzęt mogą zapewnić niezbędną ilość pamięci lub miejsca na dysku. Koncepcja modelu pamięci umożliwia przechowywanie tablic AlgART w różnych schematach, od prostych tablic Java do zmapowanych plików dyskowych; wszystkie niezbędne transfery danych są wykonywane automatycznie podczas każdego dostępu do elementu lub bloku elementów. Większość algorytmów opiera się na szerokim wykorzystaniu leniwych ocen. Typowe operacje, takie jak sumowanie elementowe lub przekształcenia macierzy geometrycznej, są implementowane za pomocą leniwych widoków tablicy źródłowej lub macierzy. Na przykład możesz wziąć wielowymiarową macierz, obrócić ją (lub wykonać dowolną inną transformację afiniczną lub rzutową), a następnie wyodrębnić podmacierz z wyniku. Wszystkie te operacje będą wykonywane wirtualnie (nie wymagają czasu), a faktyczne obliczenia będą wykonywane dopiero w momencie dostępu do elementów, zwykle podczas kopiowania powstałej macierzy do nowo utworzonej. Co więcej, w wielu przypadkach biblioteki „zrozumieją”, że użytkownik chce wykonać rotację lub inną transformację i podzielą macierz na odpowiednie prostokątne bloki (mieszczące się w pamięci RAM) i dobiorą najlepszy algorytm do tego zadania w momencie operacja kopiowania.