BoofCV Change Log

From BoofCV
Revision as of 02:51, 23 September 2014 by Peter (talk | contribs)
Jump to navigationJump to search

Change Log

Date Format: year/month/day


Date  : 2014/9/22 Version : Alpha 0.18

  • Renamed ImageSegmentation to ImageSuperpixels
    • Added a unit test which ensures connectivity requirement is meet
    • Fixed issue with SLIC where it did not set its ConnectRule
  • Renamed ExampleStructureFromMotion to ExampleMultiviewSceneReconstruction
  • Processing
    • Gradle copies over processing JavaDoc
    • Fixed SimpleTrackerPoints.spawn() which did not update the tracks before
    • Added more comments to examples
  • Removed Caliper dependency
    • Not designed the way I want it to be and recent changes made it less usable
  • Removed v4l4j support since Webcam Capture is easier and does a better job
  • Fixed OpenKinect examples
  • ImageDistort now supports a different input and output types
    • Support is provided for the same image type
    • It now allows for all types to float 32. Interpolation always outputs a floating point value.
  • ThresholdImageOps
    • Otsu's method
    • Entropy based method
    • Sauvola
  • Fixed problem in FilterImageReflection where it assumed two arguments but some binary operations have 3 now
  • Added pow2 and sqrt to PixelMath
  • Added invert to BinaryImageOps
  • Added rotateCW and rotateCCW to ImageMiscOps
  • FilterImageInterface
    • Reference ImageBase instead of ImageSingleBand
    • Can get output type
  • InputToBinary = Interface for converting an arbitrary image into a binary one
    • Added wrappers/implementations for all current thresholding techniques
  • Fiducial Detector
    • Square-Binary. Encodes 4096 numbers
    • Square-Image. Detects arbitrary image fiducials contained inside a square.
  • Fixed bug in ColorHsv for multi-spectral images
    • Was missing a check to see if saturation was zero
    • Thanks sandreas for reporting the bug
  • GConvolveImageOps
    • Fixed generics so it wasn't forcing input and output to be the same type
  • Added ExampleConvolution
  • Convolution
    • ConvolveNormalizedNaive correctly handles offsets in the kernel
    • 2D convolution correctly supports offset. Before it used radius no matter what
    • Normalized convolution makes sure the input kernel sums up to 1 for floating point
  • Processing
    • Added new thresholding and fiducials

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