Difference between revisions of "BoofCV Change Log"

From BoofCV
Jump to navigationJump to search
m
m
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
Change Log
Date    : 2016/12/07
Version : 0.26


Date Format: year/month/day
* Fixed a long standing unit test issue where convolve unit test would some times on some systems erratically fail
 
** Appears that sometimes the random numbers caused a buffer overflow for U8 images
---------------------------------------------
** Now why it didn't have the exact same numbers every time when it has a fixed seed is disturbing...
Date    : 2014/9/22
* Renamed EquirectangularTo* to *ToEquirectangular
Version : Alpha 0.18
** Those classes convert pixels in * coordinates into their location in the equirectangular image
** They are used to generate a * image from equirectangular
* Renamed ImageSegmentation to ImageSuperpixels
* Float 32bit auto coding switched over to using auto64fto32f library
** Added a unit test which ensures connectivity requirement is meet
* TypeInterpolate is now InterpolationType for consistency
** Fixed issue with SLIC where it did not set its ConnectRule
* Examples
* Renamed ExampleStructureFromMotion to ExampleMultiviewSceneReconstruction
** InterpolatePixel added
* Processing
** Image blur added
** Gradle copies over processing JavaDoc
** Non-Maximum Suppression added
** Fixed SimpleTrackerPoints.spawn() which did not update the tracks before
* Demonstrations
** Added more comments to examples
** Improved DemonstrationInterpolateScaleApp (renamed also)
* Removed Caliper dependency
** Added DetectBlackEllipseApp
** Not designed the way I want it to be and recent changes made it less usable
* Gradle
* Removed v4l4j support since Webcam Capture is easier and does a better job
** Will fail on dependency version conflict now
* Fixed OpenKinect examples
** Will fail when building release with SNAPSHOT dependencies
* ImageDistort now supports a different input and output types
** Resolved xstream version conflict
** Support is provided for the same image type
* Updated DeepBoof
** It now allows for all types to float 32. Interpolation always outputs a floating point value.
** This is to get around an issue with a java wget library where it would hang instead of giving up
* ThresholdImageOps
** New code is also much more informative and prints out size info and download status\
** Otsu's method
* Visualization
** Entropy based method
** Removed a bad +PI/2 from ellipse rendering.
** Sauvola
* SnapToEllipseEdge * Fixed bug where it was only performing one iteration no matter what
* Fixed problem in FilterImageReflection where it assumed two arguments but some binary operations have 3 now
* Circle Asymmetric Grid Target
* Added pow2 and sqrt to PixelMath
** Fixed issue which was causing clusters not to form by not limiting number of neighbors within X distance
* Added invert to BinaryImageOps
** When clustering ellipses orientation and major/minor axis size is now taken in account.
* Added rotateCW and rotateCCW to ImageMiscOps
** Significant net improvement in regression tests, only drop in performance in blurred images
* 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

Latest revision as of 21:16, 7 December 2016

Date  : 2016/12/07 Version : 0.26

  • Fixed a long standing unit test issue where convolve unit test would some times on some systems erratically fail
    • Appears that sometimes the random numbers caused a buffer overflow for U8 images
    • Now why it didn't have the exact same numbers every time when it has a fixed seed is disturbing...
  • Renamed EquirectangularTo* to *ToEquirectangular
    • Those classes convert pixels in * coordinates into their location in the equirectangular image
    • They are used to generate a * image from equirectangular
  • Float 32bit auto coding switched over to using auto64fto32f library
  • TypeInterpolate is now InterpolationType for consistency
  • Examples
    • InterpolatePixel added
    • Image blur added
    • Non-Maximum Suppression added
  • Demonstrations
    • Improved DemonstrationInterpolateScaleApp (renamed also)
    • Added DetectBlackEllipseApp
  • Gradle
    • Will fail on dependency version conflict now
    • Will fail when building release with SNAPSHOT dependencies
    • Resolved xstream version conflict
  • Updated DeepBoof
    • This is to get around an issue with a java wget library where it would hang instead of giving up
    • New code is also much more informative and prints out size info and download status\
  • Visualization
    • Removed a bad +PI/2 from ellipse rendering.
  • SnapToEllipseEdge * Fixed bug where it was only performing one iteration no matter what
  • Circle Asymmetric Grid Target
    • Fixed issue which was causing clusters not to form by not limiting number of neighbors within X distance
    • When clustering ellipses orientation and major/minor axis size is now taken in account.
    • Significant net improvement in regression tests, only drop in performance in blurred images