Latest News

23 October 2017

Guile-CV version 0.1.7 is released.

Here is a summary of the changes since version 0.1.6. See Guile-CV git summary and Guile-CV git log for a complete description.

Dependencies

  • Vigra C >= commit a38f361 Sep 18, 2017
  • That commit introduces - kindly implemented by Benjamin Seppke upon our request - the following new features: centre of mass, perimeter, skewness, kurtosis.

Interface changes

  • im-save
    im-show
  • Adding an optional (scale #f) argument. Till now, images pixel values would be always scaled at save time, unless saving the file using tif. This was really less then optimal because (a) tif preserves values, but no image viewer knows how to display these Guile-CV 32 bits float images (they beleive these are RGBA images) and (b) scaling at save time totally destroyed the results of im memory calcuations ... What we really want here, most of the time at least, and hence it becomes the default from now on, is what is called 'clipping': pixel values are ‘clipped’, which means that values < 0 are saved as 0, values > 255 are saved as 255, and otherwise are saved unchanged.

  • im-invert
    im-channel-invert
    f32vector-invert
    f32vector-invert
  • Previously, these procedures were using the name 'inverse', but that was not 'optimal', fixed.

New interfaces

  • k-make
  • k-make-circular-mask
  • k-size
  • k-width
  • k-height
  • k-channel
  • kernel?
  • k-ref
  • k-fast-ref
  • k-set!
  • k-fast-set!
  • k-offset
  • k-fast-offset
  • k-display
  • im-convolve
  • im-convolve-channel
  • im-gaussian-sharp
  • im-gaussian-sharp-channel
  • im-sharpen
  • im-sharpen-channel

  • %pi
  • %2pi
  • %pi/2

New features

  • new GRAY features

    major-ev-x, major-ev-y, minor-ev-x, minor-ev-y, major-axis, minor-axis, angle, center-mass-x, center-mass-y, perimeter, skewness, kurtosis, circularity, aspect-ratio, roundness.

  • new RGB features

    major-ev-x, major-ev-y, minor-ev-x, minor-ev-y, major-axis, minor-axis, angle, center-mass-x, center-mass-y, perimeter, skewness-r, skewness-g, skewness-b, kurtosis-r, kurtosis-g, kurtosis-b, circularity, aspect-ratio, roundness.

Bug fixes

  • im-set!
    im-images?

    both procedures have been 'relaxed' and do not check anymore that either the value or pixel values respectively are in the [0 255] range, as doing so was actually incorrect: images need to be normalized and scaled (as in bringing their pixel values in the [0 255] range) only to be displayed, but otherwise, their should be no such limitations.

  • im-binary?:

    was returning #f for BLACK and WHITE images, so either composed of eiher 0.0 or 255.0, fixed.

Older News

14 August 2017

Guile-CV version 0.1.6 is released.

Here is a summary of the changes since version 0.1.5. See Guile-CV Guile-CV git summary and Guile-CV git log for a complete description:

Interface changes

  • im-normalize
    im-normalize-channel:

    Adding an optional #:key (val 255.0), since we need to be able to normalize to specific values in some circumstances, such as, for example, to normalize gray level co-occurrence matrices.

  • f32vector-reduce:

    The arguments order has been changed for 'vector proc default' not 'proc default vector', because it is the order we use in im-reduce and im-reduce-channel - as [almost] all other im-* procedures or methods take an image as their first argument. As a user, it is also a bit more naturel, imo at least, to 'reduce image using proc, return default if the image is empty'.

  • im-add
    im-add-channel
    im-subtract
    im-subtract-channel
    im-multiply
    im-multiply-channel
    im-divide
    im-divide-channel:

    All linear algebra matrix methods now accept any number of images or channels. Note that due to the inherent checks between lines and columns of intermediate results, im-multiply-channel and im-divide-channel methods arguments must be a series of at least one tuple(s) composed of three values - channel width height - represented in the manual as: c1 w1 h1 c2 w2 h2 c3 w3 h3 …

  • im-collect:

    Updated so its interface is 'identical' to im-map and friends, and a typical call now looks like: im-collect what i1 i2 i3 … (instead of im-collect images what).

New interfaces

  • im-range
  • im-range-channel
  • im-min
  • im-min-channel
  • im-max
  • im-max-channel
  • im-map
  • im-map-channel
  • im-reduce
  • im-reduce-channel
  • f32vector->s32vector
  • f32vector-range
  • s32vector-range
  • s32vector-min
  • s32vector-max
  • s32vector-reduce
  • s32vector->f32vector

Bug fixes

  • im-normalize:

    the width and height of the result normalized image were inadvertently inverted, now fixed.

  • f32vector-matrix-multiply:

    the sub results were inadvertently using 'n' instead of 'p' to compute their destination position in the 'n x p' cells returned result f32vector, now fixed.

24 July 2017

Guile-CV version 0.1.5 is released.

Here is a summary of the changes since version 0.1.4. See Guile-CV Guile-CV git summary and Guile-CV git log for a complete description:

Interface changes

  • dark -> black
    light -> white:
    • both in the source code (optional kw default values)
    • and in the documentation

New interfaces

  • im-delineate
  • im-delineate-channel
  • im-distance-map
  • im-distance-map-channel
  • im-canny
  • im-canny-channel
  • im-xor
  • f32vector-xor-at-offset

Bug fixes

  • Import export test-suite
  • Error message for im-gaussian-gradient
  • Documentation typos
  • Histogram gray legends below their histogram

24 May 2017

Guile-CV version 0.1.4 is released.

This is the first public release of Guile-CV, earlier releases were made available to GNU evaluators and Savannah hackers only.

Here is a summary of the changes since version 0.1.3.2. See Guile-CV Guile-CV git summary and Guile-CV git log for a complete description:

Dependencies

  • Makeinfo >= 6.3
  • Latex: any modern latex distribution will do

    documentclass: standalone.

    packages: inputenc, fontenc, lmodern, xcolor, booktabs, siunitx, iwona

API changes

  • im-properties:
    • renamed im-features
  • im-*grey* procedures and methods:
    • renamed im-*gray*
    • dito for arguments
    • GREY -> GRAY in the documentation
  • colour -> color
    COLOUR -> COLOR:
    • both in the source code (arg and kw arg names)
    • and in the documentation
  • f32vector-* procedures:
    • use #:key, not #:optional
  • im-padd
    im-padd-channel:
    • accept a #:color optional keyword argument
  • f32vector-multiply:
    • renamed f32vector-matrix-multiply

New procedures

  • f32vector-inverse
  • f32vector-reduce
  • f32vector-mean
  • f32vector-std-dev
  • im-add
  • im-add-channel
  • im-subtract
  • im-subtract-channel
  • im-multiply
  • im-multiply-channel
  • im-divide
  • im-divide-channel
  • im-inverse
  • im-inverse-channel
  • im-compose
  • im-compose-channels
  • im-particles
  • im-particle-clean
  • im-histogram

21 April 2017

Guile-CV is now part of GNU!

We are doing the home work to convert the headers, links, mailing list, web pages ... finalize some of the coding we were working on and release 0.1.4, the first public release, very soon now, stay tuned.

13 March 2017

Guile-CV is now on Savannah nongnu.

The GNU evaluation of Guile-CV has been completed on March the 11th, 2017, but due to backlog, we've been informed then that its approval step would take another five weeks, so we decided to upload it on Savannah non gnu in the mean time, done!

Releases, Guile-CV git summary and Guile-CV git log all available now... Special thank to the GNU evaluator and of course to the Savannah hackers!

31 January 2017

Guile-CV - GNU evaluation.

A couple of months ago, we started to work on Guile-CV, a Computer Vision functional library for the Guile Scheme language, and now is the right time for it to be evaluated to be part of the GNU Project.

Guile-CV is based on Vigra (Vision with Generic Algorithms). It comprises a direct binding to Vigra C (a C wrapper to a subset of the Vigra library), and a higher level API written in Guile Scheme.