Skip to content

Releases: lessthanoptimal/BoofCV

Gradle, segmentation, dense optical flow, integrations

19 Jun 16:23
Compare
Choose a tag to compare

Date : 2014/6/19
Version : Alpha 0.17

  • Improved/Fixed serialization
    • Several classes were missing no argument constructors
  • Added ImageMiscOps.flipHorizontal()
  • Added WeightSample2D_F32 for computing the weight of a sample in an abstract manor
    • Reduced MeanShiftPeak from 3 classes into one
  • Edge Non-Maximum suppression's documentation now clearly states that it suppresses only if adjacent pixel is
    less than. This is not true non-maximum suppression since it allows equal values but seems to produce
    better results
    • Improved unit tests to explicitly test for this behavior
  • Canny edge detector would fail if threshold was zero and the image had no texture
    • HysteresisEdge* code was using a value of 0 to mark traversed regions. It now uses -1 and sanity checks
      the lower threshold.
    • Thanks Lucaro for finding this bug
  • Added GImageMultiBand for generalized access to multi-band image data
  • Added support for MultiSpectral images to:
    • GBlurImageOps and BlurImageOps
  • Image Segmentation / Superpixels
    • Watershed
    • Mean-shift
    • Felzenszwalb-Huttenlocher 2004
    • SLIC Superpixels
  • Dense Optical Flow
    • KLT Based
    • Square Region Based
    • Horn Schunck
    • Horn Schunck Pyramid
    • Brox Spacial Warping
  • Fixed bugs in ConvertNV21
    • Was applying YV12 byte alignment to NV21 images. Depending on image size, this could cause a crash.
  • Fixed bug in ImplConvertToBitmap.multiToArray_F32()
    • Didn't handle case where the input image has 3 bands and not 4
  • ImageBase now provides a method for getting ImageType information
  • Threshold in the interface Associate is now <= instead of <
  • Android
    • Added classes which greatly simplify dealing with camera previews
    • Added new visualizations intended for use with segmented images
    • Simplified example code
  • Added XYZ and LAB color spaces
  • GImageMiscOps.fillUniform() max is inclusive for both integer and float and this is enforced
  • BinaryImageOps
    • Erode and dilate can now be applied multiple times with a single function call
  • StitchingFromMotion2D can now resize and translate the stitch image
    • Thanks Julien Seinturier for the suggestion
  • Convolution
    • 1D convolution now supports kernels which are not symmetric
  • Image gradient from a difference of two neighbors added
  • Square grid calibration grid detector has been improved.
    • No longer permutes through all combinations. Selects each valid square and assumes its the first instead
    • Graph connection rule has been improved too to reduce false connections
  • Moved serializeXML from BoofMiscOps to UtilIO
    • Removing an IO function which shouldn't be in image processing
  • FactoryDerivative
    • If derivative type is null it will use the default
  • Added ImageType to interpolate interface
  • Added ImageType to ImageSegmentation interface
  • Processing (http://processing.org) integration
    • Lots of examples
    • Simplified interface for working with BoofCV
  • XStream now works without that ugly hack
    • Thanks to Jörg Schaible of XStream for fixing the issue and all the help
  • Webcam Capture Support
    • Easy to use library for streaming webcams
    • Wrote several example showing how Webcam Capture can be used with BoofCV
  • Structure From Motion (SFM) example