Free Software Foundation!

Join now

Difference between revisions of "Algart"

From Free Software Directory
Jump to: navigation,
(Project created)
 
(New release)
 
(2 intermediate revisions by one user not shown)
Line 2: Line 2:
 
|Name=AlgART Java libraries
 
|Name=AlgART Java libraries
 
|Short description=Java libraries for processing arrays and matrices, including image processing
 
|Short description=Java libraries for processing arrays and matrices, including image processing
|Full description=Open-source Java libraries, supporting generalized smart arrays and matrices with elements of any types (1 bit, 8/16/32/64-bit integers, 32/64-bit floating point values and any other Java types), including a wide set of image processing and other algorithms, working with arrays and matrices. The libraries use 63-bit addressing of array elements (all indexes and length are represented by 64-bit long type). So, it's theoretically possible to create and process arrays and matrices containing up to 2^63-1 (~10^19) elements of any primitive or non-primitive types, if OS and hardware can provide necessary amount of memory or disk space. Memory model concept allows storing AlgART arrays in different schemes, from simple Java arrays to mapped disk files; all necessary data transfers are performed automatically while every access to an element or a block of elements. Most of algorithms are based on wide usage of lazy evaluations. Typical operations, like elementwise summing or geometrical matrix transformations, are implemented via lazy views of the source array or matrix. For example, you can take a multidimensional matrix, rotate it (or perform any other affine or projective transform), and then extract a submatrix from the result. All these operations will be performed virtually (not requiring time), and actual calculations will be performed only at the moment of accessing elements, usually while copying the resulting matrix to a newly created one. Moreover, in many cases the libraries will "understand" itself, that the user wants to perform rotation or another transform, and will split the matrix into suitable rectangular blocks (fitting in RAM) and choose the best algorithm for this task at the moment of copying operation. The libraries contain a wide set of image processing algorithms over matrices: linear filtering, mathematical morphology, rank operations, spectral transformation (FFT), etc. There is also skeletonization and measuring of binary images.
+
|Full description=AlgART are free software Java libraries, supporting generalized smart arrays and matrices with elements of any types (1 bit, 8/16/32/64-bit integers, 32/64-bit floating point values and any other Java types), including a wide set of of 2D-, 3D- and multidimensional image processing and other algorithms, working with arrays and matrices.
 +
 
 +
== Main Features ==
 +
 
 +
* The libraries use 63-bit addressing of array elements (all indexes and length are represented by 64-bit long type). So, it's theoretically possible to create and process arrays and matrices containing up to 2^63-1 (~10^19) elements of any primitive or non-primitive types, if OS and hardware can provide necessary amount of memory or disk space.
 +
 
 +
* Memory model concept allows storing AlgART arrays in different schemes, from simple Java arrays to mapped disk files; all necessary data transfers are performed automatically while every access to an element or a block of elements.
 +
 
 +
* Most of algorithms are based on wide usage of lazy evaluations. Typical operations, like elementwise summing or geometrical matrix transformations, are implemented via lazy views of the source array or matrix.
 +
 
 +
** For example, you can take a multidimensional matrix, rotate it (or perform any other affine or projective transform), and then extract a submatrix from the result. All these operations will be performed virtually (not requiring time), and actual calculations will be performed only at the moment of accessing elements, usually while copying the resulting matrix to a newly created one. Moreover, in many cases the libraries will "understand" itself, that the user wants to perform rotation or another transform, and will split the matrix into suitable rectangular blocks (fitting in RAM) and choose the best algorithm for this task at the moment of copying operation.
 +
 
 +
* The libraries contain a wide set of image processing algorithms over matrices: linear filtering, mathematical morphology, rank operations, spectral transformation (FFT), etc.  
 +
 
 +
* There is also skeletonization and measuring of binary images.
 
|Homepage URL=http://algart.net/java/AlgART/
 
|Homepage URL=http://algart.net/java/AlgART/
 
|User level=advanced
 
|User level=advanced
Line 10: Line 24:
 
|Keywords=image processing
 
|Keywords=image processing
 
|Version identifier=1.2
 
|Version identifier=1.2
 +
|Version date=2013/12/19
 +
|Version status=stable
 +
|Version download=http://algart.net/java/AlgART/algart.zip
 +
|Version comment=Downloadable ZIP archive restructured and reduced; new package net.algart.external added
 
|Status=
 
|Status=
 
|Is GNU=No
 
|Is GNU=No
 
}}
 
}}
 
{{Project license
 
{{Project license
|License=X11
+
|License=Expat
|License copyright=The MIT License (MIT)
+
|License copyright=Copyright 2007-2013 Daniel Alievsky, AlgART Laboratory (http://algart.net)
 
+
|License verified by=Bencook
Copyright (c) 2007-2013 Daniel Alievsky, AlgART Laboratory (http://algart.net)
+
|License verified date=2013/12/13
 
+
Permission is hereby granted, free of charge, to any person obtaining a copy
+
of this software and associated documentation files (the "Software"), to deal
+
in the Software without restriction, including without limitation the rights
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+
copies of the Software, and to permit persons to whom the Software is
+
furnished to do so, subject to the following conditions:
+
 
+
The above copyright notice and this permission notice shall be included in
+
all copies or substantial portions of the Software.
+
 
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+
THE SOFTWARE.
+
 
+
 
}}
 
}}
 
{{Person
 
{{Person
Line 51: Line 50:
 
|Use=software-development
 
|Use=software-development
 
|Version-control=git
 
|Version-control=git
 +
}}
 +
{{Software prerequisite
 +
|Prerequisite kind=Required to use
 +
|Prerequisite description=Java
 
}}
 
}}
 
{{Featured}}
 
{{Featured}}

Latest revision as of 08:40, 19 December 2013

[edit]

AlgART Java libraries

http://algart.net/java/AlgART/
AlgART are free software Java libraries, supporting generalized smart arrays and matrices with elements of any types (1 bit, 8/16/32/64-bit integers, 32/64-bit floating point values and any other Java types), including a wide set of of 2D-, 3D- and multidimensional image processing and other algorithms, working with arrays and matrices.

Main Features

  • The libraries use 63-bit addressing of array elements (all indexes and length are represented by 64-bit long type). So, it's theoretically possible to create and process arrays and matrices containing up to 2^63-1 (~10^19) elements of any primitive or non-primitive types, if OS and hardware can provide necessary amount of memory or disk space.
  • Memory model concept allows storing AlgART arrays in different schemes, from simple Java arrays to mapped disk files; all necessary data transfers are performed automatically while every access to an element or a block of elements.
  • Most of algorithms are based on wide usage of lazy evaluations. Typical operations, like elementwise summing or geometrical matrix transformations, are implemented via lazy views of the source array or matrix.
    • For example, you can take a multidimensional matrix, rotate it (or perform any other affine or projective transform), and then extract a submatrix from the result. All these operations will be performed virtually (not requiring time), and actual calculations will be performed only at the moment of accessing elements, usually while copying the resulting matrix to a newly created one. Moreover, in many cases the libraries will "understand" itself, that the user wants to perform rotation or another transform, and will split the matrix into suitable rectangular blocks (fitting in RAM) and choose the best algorithm for this task at the moment of copying operation.
  • The libraries contain a wide set of image processing algorithms over matrices: linear filtering, mathematical morphology, rank operations, spectral transformation (FFT), etc.
  • There is also skeletonization and measuring of binary images.

Documentation

These libraries are fully documented by Javadoc




Licensing

LicenseVerified byVerified onNotes
ExpatBencook13 December 2013



Leaders and contributors

Contact(s)Role
Daniel Alievsky developer


Resources and communication

Software prerequisites

Kind Description
Required to use Java



Entry





















Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.


Personal tools
Namespaces

Variants
Actions
Navigation
Contribute