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-cv@gnu.org * Mailing lists For the time being, Guile-CV uses Guile's mailing list: guile-user@gnu.org is for general user help and discussion; guile-devel@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