Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
234 lines (172 sloc) 9.89 KB
*** RELEASE 2.0.alpha4, 15 JANUARY 2008 ***
This release features many improvements to the primitives found in the
Core module of the Vision Workbench.
In particular, we have improved the generic threading interface by
adding a Condition class and a static method, Thread::id(), which
returns a globally unique ID for the current thread. We have also
added a new WorkQueue class for managing thread pools. You may want
to try out multithreaded image rasterization if you have a multicore
machine. The block_rasterize() and block_write_image() functions can
help you get started!
This release also features the debut of a thread-safe logging
subsystem. This functionality has been a long time in coming, and it
greatly improves the ability to print debugging and status information
to the user's console or to one or more files on disk. You can read
the new chapter in the Vision Workbook titled "Core Module" to learn
all about it.
IMPORTANT NOTE: This logging system is not yet windows compatible --
we do not recommend that you upgrade to 2.0alpha4 if you are currently
developing on windows unless you want to patch the Log.{cc,h} files to
replace POSIX functionality with the Windows equivalents.
These can be used if you need to augment the PixelFormatID<> type
traits class so that you can save an unusual or custom pixel type to
an image file.
Added better detection of the OpenEXR libraries, especially for
version 1.5 and above.
Improved detection of LAPACK libraries and fixed a bug in the m4
macros that appeared with certain versions of autotools.
Added a rate-limiting feature to the TerminalProgressCallback() that
eliminates redundant stream output that can negatively impact
performance on a slow terminal.
Optimized the GeoTransform object in cases where source and
destination transform are the same.
You can now have arbitrarily many DiskImageResourceGDAL's open thanks
to a new internal system for caching open file descriptors.
Added a new colorspace: Luv
Fixed compatibility problems with Automake 1.10 which was causing
problems on MacOS 10.5.
Eliminated many compiler warnings that appear when you compile with
Added a chapter to the Vision Workbook(!): Core Module
Moved the KDTree class from the InterestPoint module to the Math
Fixed a tricky edge condition in the ReflectEdgeExtension that would
sometimes cause a segfault.
*** RELEASE 2.0.alpha3, 9 NOVEMBER 2007 ***
This release introduces the InterestPoint module, which provides tools
to locate point features in images that can be use for image alignment,
matching, or tracking. We use it for things like grossly aligning images
prior to dense stereo correlation with the Stereo module, or aligning
images of a panorama prior to blending with the Mosaic module. This
release includes tools for detecting interest points as peaks in
Laplacian or Harris operator spaces, and for extracting scaled, oriented
image patches around peaks for identification. Still to come are
PCA-based interest point descriptors (i.e. feature vectors) and a fast
KD-tree-based interest point matching system.
Updated the configuration and build system to support recent versions
of the OpenEXR file IO library and building the GPU module using the
Apple OpenGL frameworks on OS X. Leopard support not yet tested.
Added row(), col(), and plane() methods to PixelIterator.
Added some more methods for querying SDS metadata in HDF files.
Added limited support for reading palette-based images via GDAL.
Fixed some corner cases in the image interpolation code.
Added pixel_format_name() and channel_type_name() for debugging output.
A handful of other minor tweaks/fixes.
*** RELEASE 2.0.alpha2, 22 OCTOBER 2007 ***
This release primarily fixes a critical bug in the handling of GeoTIFFs
that prevents loading of georeference information in many cases.
Added a CylindricalEdgeExtension type to simplify working with global
maps in cylindrical projections: it applies periodic edge extension in
the x-axis and constant edge extension in the y-axis.
A handful of other minor tweaks/fixes.
*** RELEASE 2.0.alpha1, 18 OCTOBER 2007 ***
So many little things have changed or been added that it is hard to
know where to begin. Real documentation will be forthcoming during
the beta period. More will become apparent in forthcoming alpha
relases, too. We'll focus on a few big-ticket items here.
Added the Stereo module, which performs dense stereo correlation on pairs
of images using a fast sum-of-absolute-difference technique. See the example program for a few examples of how it can be used.
Added the GPU module, which supports performing many image processing
operations directly on the GPU. Docs and examples coming soon.
Greatly enhanced the options for handling very large images. For
large images in memory, multi-thread your image processing operations
using the new block_rasterize() function. For extremely large images
on disk, "read" them in using a DiskImageView, "process" them lazily
using ImageViewRef for any necessary intermediates, and write the
result to disk using write_image().
Greatly improved camera response curve calibration in the HDR module.
The command-line tools hdr_merge and hdr_tonemap work well in many
cases now.
Added support for orthorectifiying an aerial or satellite image if you
have a traditional camera model and (optionally) a suitable DEM. See
OrthoImageView.h and its companion helper file CameraBBox.h in the
Cartography module.
*** RELEASE 1.0.1, 2 FEBRUARY 2007 ***
Renamed the *EdgeExtend classes and header files to *EdgeExtension,
for grammatical consistency.
Minor bugfixes and improvements to PNG, TIFF, and PDS file I/O,
georeferencing, image compositing and quad-tree generation, the CAHVOR
camera model, image transformations, the interpolation views, and the
Vision Workbook.
Added the ImageResource base class to support generalized image I/O.
Renamed GenericImageFormat and GenericImageBuffer to ImageFormat and
ImageBuffer. Added ImageResourceView to support view-based operations
on general resources. Reworked the DiskImageResource and
DiskImageView subsystem accordingly.
Added support for user-supplied error handlers to be called in place
of the usual exception-throwing. If the Vision Workbench is
configured with exceptions disabled, the default handler prints the
error text and calls abort().
Added the ability to generate KML "super-overlays" to the quad- tree
generator in the Mosaic module, and added an example command-line tool
called "image2kml". (Depends on the Cartography module, and therefore
requires PROJ.4 and GDAL. See the README file for more info.)
Added the Nelder-Mead optimization algorithm.
Removed dependence of the Math code on Boost's uBLAS, whose excessive
template complexity was causing problems on some platforms.
Added camera_transform(), camera_linearize_transform(), and
identiy_matrix() convenience functions, as well as overloads to
translate() for fast integer-offset translations.
Added a generic pinhole camera model including Tsai lens distortion
support to the Camera module.
Some versions of LAPACK appear to return eigenvalues/vectors in a
different order than others, which confuses the unit test fo eigen()
right now. If you see this error, do not worry about it.
On some platforms the Vision Workbench appears to behave strangely
when compiled with optimization turned off. This is probably a bad
idea anyway, since the Vision Workbench relies on function inlining
for reasonable performance.
Under some unknown circumstances the Cache system appears to get
confused about how many resources are in use and may produce
unexpected warning messages or exhibit suboptimal cacheing behavior,
though it does not appear to leak memory or resources.
*** RELEASE 1.0.0, 4 DECEMBER 2006 ***
There are doubtless more issues than these, but these are the one's
we're aware of at this time!
Some parts of the code are more mature than others. In particular
the Cartography module is likely to undergo a major overhaul in the
near future, so don't get to tied down to its current interface.
We are more hopeful that we will be able to maintain nearly complete
backwards compatability in the other modules.
Only the Core, Image, and to a lesser extend Math modules have
reasonably complete unit and regression testing in place.
Support for alpha channels is vague in some places. The current
pixel math schema makes linear interpolation of pixel data (e.g.
gaussian filtering or image transformations) easy while making
other image math (e.g. gamma correction) harder. Other things,
such as the image statistics code, may be horribly confused by
images with alpha channels.
ConvolutionView and SeparableConvolutionView, used internally by
many of the filter functions, may produce unexpected behavior when
used to filter views that are already edge-extended. A workaround
is to rasterize your source image, including sufficient edge context,
into a temporary ImageView buffer prior to filtering.
CropView, used internally by the crop() function among other places,
does not properly support floating-point offsets in all cases
(notably when its rasterization function is in charge).
The ExifView in the Camera module does not report when a requested
field is missing.
Many features of individual image file formats are not supported.
For example, PNG files with fewer than 8 bits per channel are not
supported. The TIFF image reader does not take advantage of
colorimetric information included in the file when deducing the
file's pixel type.
Much of the code has not been properly tested under Windows/MSVC.
The Matrix outer product functions are disabled on that platform
due to compiler issues.
The Vision Workbench does not compile under Debian Linux with the
Debian packages for boost and LAPACK. We recommend installing boost
from source and installing LAPACK from the pre-packaged distribution
available on the Vision Workbench web site.
Jump to Line
Something went wrong with that request. Please try again.