David Pirotte
2018-09-10 02:46:44 UTC
Hello,
GNU Guile-CV 0.2.0 is released.
This is a 'milestone' release, which introduces image texture measures.
In addition (a) the default installation locations have changed; (b)
there is a new configure option; (c) some new insterfaces; (d) matrix
multiplication performances have been greatly improved; (d) a few
interface (name) have changed.
* About
Guile-CV - Image Processing and Analysis in Guile - is a Computer Vision
functional programming library for the Guile Scheme language.
Based on Vigra (Vision with Generic Algorithms - a C++ image processing
and analysis library), Guile-CV comprises a direct binding to Vigra C (a
C wrapper to most of the Vigra functionality), enriched with pure Guile
scheme algorithms, all accessible through a nice, clean and easy to use
high level API.
Guile-CV is natively multi-threaded, and takes advantage of multiple
cores, using high-level and fine grained application-level parallelism
constructs available in Guile, based on its support to POSIX threads.
http://www.gnu.org/software/guile-cv/
* Download
Here are the compressed sources and a GPG detached signature [fn:1]:
http://ftp.gnu.org/gnu/guile-cv/guile-cv-0.2.0.tar.gz
http://ftp.gnu.org/gnu/guile-cv/guile-cv-0.2.0.tar.gz.sig
This released was bootstrapped with the following tools:
-] gcc (Debian 8.2.0-4) 8.2.0
-] autoconf (GNU Autoconf) 2.69
-] automake (GNU automake) 1.16.1
-] libtool (GNU libtool) 2.4.6
-] makeinfo (GNU texinfo) 6.5
-] pdflatex 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian)
-] guile-2.2 2.2.4.1-cdb19
-] guile-lib-1.0 0.2.6.1
*** Changes since 0.1.9
Here is a summary of visible changes since version 0.1.9. See GNU
Guile-CV's [[http://git.savannah.gnu.org/cgit/guile-cv.git][git summary]] and
[[http://git.savannah.gnu.org/cgit/guile-cv.git/log/][git log]] for a complete
description.
**** Installation location changes
The default and --prefix installation locations for the source modules
and the compiled files have changed, and, in the absence of the new
configure option described below, are now:
$(datadir)/guile-cv
$(libdir)/guile-cv/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache
In the above, $(datadir) is substituted to the default /usr/local/share
or /your/prefix/share and $(libdir) is substituted to /usr/local/lib or
/your/prefix/lib, when/if --prefix was passed.
$(GUILE_EFFECTIVE_VERSION) is substituted to the stable version number
with which Guile-CV is being compile, for example, 2.2
This change makes GNU Guile-CV compatible with the GNU Coding Standards,
but it also implies that, unless you use the new configure option
describe below, you will have to augment both Guile's variables
%load-path and %load-compiled-path, respectively, with the two
(substituted) paths described above, so that Guile finds Guile-CV's
installed source modules and compiled files (see Guile-CV's installation
'Notes' for more on this).
**** New configure option
The configure option --with-guile-site has been added, used to
explicitly ask Foliot's source modules to be installed in the
Guile-Gnome site directory, and the compiled files using Guile's
site-ccache directories respectively (see Foliot's installation 'Notes'
for more on this).
It will only be honored if (and only if) it is passed as:
--with-guile-site=yes
[ in this case, there is obviously no need to augment Guile's
[ variables %load-path and %load-compiled-path
**** Interface changes
| New name | Previous name |
|------------------- +------------------------------|
| im-mtimes | im-multiply (matrix) |
| im-mtimes-channel | im-multiply-channel |
| im-times | im-multiply (scalar) |
| im-times-channel | im-multiply-channel |
The former two methods, related to matrix multiplication, are now
procedures. The later two are methods: see the manual to see the
different ways you may call them.
| im-mdivide | im-divide (matrix) |
| im-mdivide-channel | im-divide-channel |
Likewise, these were methods, they are now procedures.
**** New interfaces
im-times (element by element)
im-times-channel
im-divide (element by element)
im-divide-channel
im-texture
im-glcp
im-glcm
**** Performance improvements
im-mtimes
im-mtimes-channel
im-mdivide
im-mdivide-channel
im-invert
im-invert-channel
These matrix operations (actually, their corresponding f32vector-*
core functionality) have been moved to libguile-cv. Note that all
memory allocation - except for some per-function local variables -
still is being performed in scheme.
This move makes a small black and white 515 x 515 image matrix
multiplication by itself (for the sake of timing things) execute in
0.228 sec instead of 29.51 sec - that is 134x faster.
In image processing 'real world', this would be a tiny image, being
134x faster for these linear algebra procedures makes a huge
difference. Until Guile offers 32 bits floating point and integer
calculus performances equal to or faster of those we get using
libguile-cv, and since memory allocation is done in scheme, I am
confortable with this approach.
* Bug reports
Please report bugs to bug-guile-***@gnu.org
* Mailing lists
For the time being, Guile-CV uses Guile's mailing list:
guile-***@gnu.org is for general user help and discussion;
guile-***@gnu.org is used to discuss most aspects of Guile-CV,
including development and enhancement requests.
David
[fn:1]
Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify guile-cv-0.2.0.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys A3057AD7
and rerun the 'gpg --verify' command
GNU Guile-CV 0.2.0 is released.
This is a 'milestone' release, which introduces image texture measures.
In addition (a) the default installation locations have changed; (b)
there is a new configure option; (c) some new insterfaces; (d) matrix
multiplication performances have been greatly improved; (d) a few
interface (name) have changed.
* About
Guile-CV - Image Processing and Analysis in Guile - is a Computer Vision
functional programming library for the Guile Scheme language.
Based on Vigra (Vision with Generic Algorithms - a C++ image processing
and analysis library), Guile-CV comprises a direct binding to Vigra C (a
C wrapper to most of the Vigra functionality), enriched with pure Guile
scheme algorithms, all accessible through a nice, clean and easy to use
high level API.
Guile-CV is natively multi-threaded, and takes advantage of multiple
cores, using high-level and fine grained application-level parallelism
constructs available in Guile, based on its support to POSIX threads.
http://www.gnu.org/software/guile-cv/
* Download
Here are the compressed sources and a GPG detached signature [fn:1]:
http://ftp.gnu.org/gnu/guile-cv/guile-cv-0.2.0.tar.gz
http://ftp.gnu.org/gnu/guile-cv/guile-cv-0.2.0.tar.gz.sig
This released was bootstrapped with the following tools:
-] gcc (Debian 8.2.0-4) 8.2.0
-] autoconf (GNU Autoconf) 2.69
-] automake (GNU automake) 1.16.1
-] libtool (GNU libtool) 2.4.6
-] makeinfo (GNU texinfo) 6.5
-] pdflatex 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian)
-] guile-2.2 2.2.4.1-cdb19
-] guile-lib-1.0 0.2.6.1
*** Changes since 0.1.9
Here is a summary of visible changes since version 0.1.9. See GNU
Guile-CV's [[http://git.savannah.gnu.org/cgit/guile-cv.git][git summary]] and
[[http://git.savannah.gnu.org/cgit/guile-cv.git/log/][git log]] for a complete
description.
**** Installation location changes
The default and --prefix installation locations for the source modules
and the compiled files have changed, and, in the absence of the new
configure option described below, are now:
$(datadir)/guile-cv
$(libdir)/guile-cv/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache
In the above, $(datadir) is substituted to the default /usr/local/share
or /your/prefix/share and $(libdir) is substituted to /usr/local/lib or
/your/prefix/lib, when/if --prefix was passed.
$(GUILE_EFFECTIVE_VERSION) is substituted to the stable version number
with which Guile-CV is being compile, for example, 2.2
This change makes GNU Guile-CV compatible with the GNU Coding Standards,
but it also implies that, unless you use the new configure option
describe below, you will have to augment both Guile's variables
%load-path and %load-compiled-path, respectively, with the two
(substituted) paths described above, so that Guile finds Guile-CV's
installed source modules and compiled files (see Guile-CV's installation
'Notes' for more on this).
**** New configure option
The configure option --with-guile-site has been added, used to
explicitly ask Foliot's source modules to be installed in the
Guile-Gnome site directory, and the compiled files using Guile's
site-ccache directories respectively (see Foliot's installation 'Notes'
for more on this).
It will only be honored if (and only if) it is passed as:
--with-guile-site=yes
[ in this case, there is obviously no need to augment Guile's
[ variables %load-path and %load-compiled-path
**** Interface changes
| New name | Previous name |
|------------------- +------------------------------|
| im-mtimes | im-multiply (matrix) |
| im-mtimes-channel | im-multiply-channel |
| im-times | im-multiply (scalar) |
| im-times-channel | im-multiply-channel |
The former two methods, related to matrix multiplication, are now
procedures. The later two are methods: see the manual to see the
different ways you may call them.
| im-mdivide | im-divide (matrix) |
| im-mdivide-channel | im-divide-channel |
Likewise, these were methods, they are now procedures.
**** New interfaces
im-times (element by element)
im-times-channel
im-divide (element by element)
im-divide-channel
im-texture
im-glcp
im-glcm
**** Performance improvements
im-mtimes
im-mtimes-channel
im-mdivide
im-mdivide-channel
im-invert
im-invert-channel
These matrix operations (actually, their corresponding f32vector-*
core functionality) have been moved to libguile-cv. Note that all
memory allocation - except for some per-function local variables -
still is being performed in scheme.
This move makes a small black and white 515 x 515 image matrix
multiplication by itself (for the sake of timing things) execute in
0.228 sec instead of 29.51 sec - that is 134x faster.
In image processing 'real world', this would be a tiny image, being
134x faster for these linear algebra procedures makes a huge
difference. Until Guile offers 32 bits floating point and integer
calculus performances equal to or faster of those we get using
libguile-cv, and since memory allocation is done in scheme, I am
confortable with this approach.
* Bug reports
Please report bugs to bug-guile-***@gnu.org
* Mailing lists
For the time being, Guile-CV uses Guile's mailing list:
guile-***@gnu.org is for general user help and discussion;
guile-***@gnu.org is used to discuss most aspects of Guile-CV,
including development and enhancement requests.
David
[fn:1]
Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify guile-cv-0.2.0.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys A3057AD7
and rerun the 'gpg --verify' command