Difference between revisions of "BoofCV Change Log"

From BoofCV
Jump to navigationJump to search
m
m
 
(6 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    : 2015/09/20
* Renamed EquirectangularTo* to *ToEquirectangular
Version : Alpha 0.19
** Those classes convert pixels in * coordinates into their location in the equirectangular image
 
** They are used to generate a * image from equirectangular
* Removed -1 from CachedSineCosine_F32
* Float 32bit auto coding switched over to using auto64fto32f library
** Change suggested by Jochem
* TypeInterpolate is now InterpolationType for consistency
** Original code could cause problems for edge cases in hough transform
* Examples
* Moved BufferedImage to IO package since it is swing dependent
** InterpolatePixel added
** Suggested by Baha Elkassaby
** Image blur added
* JCodec
** Non-Maximum Suppression added
** Formally added it back in since it works on Android videos
* Demonstrations
** Added utilities to convert Picture into BoofCV formatted images
** Improved DemonstrationInterpolateScaleApp (renamed also)
* Images can be serialized again
** Added DetectBlackEllipseApp
** Made ImageType serializable now
* Gradle
** Fixed bug where subimages were not assigned an image type.
** Will fail on dependency version conflict now
* Scene classification
** Will fail when building release with SNAPSHOT dependencies
** Bag-of-Words based techniques
** Resolved xstream version conflict
** K-Nearest-Neighbor classification.  Learning and Classifier
* Updated DeepBoof
* Image setTo() will now automatically resize the image to match it's input
** This is to get around an issue with a java wget library where it would hang instead of giving up
* Added invert option to visualizing binary images
** New code is also much more informative and prints out size info and download status\
** swing and android
* Visualization
* Added in-place CW and CCW image rotation
** Removed a bad +PI/2 from ellipse rendering.
* Fiducials
* SnapToEllipseEdge * Fixed bug where it was only performing one iteration no matter what
** Image square fiducials can now have their width individually set
* Circle Asymmetric Grid Target
** Square based fiducials now use the new polygon detector and benefit from its improved subpixel
** Fixed issue which was causing clusters not to form by not limiting number of neighbors within X distance
** Fixed bug where the returned orientation was inconsistent with the JavaDoc
** When clustering ellipses orientation and major/minor axis size is now taken in account.
** Fixed another bug that caused the sides to "flip" depending on view angle
** Significant net improvement in regression tests, only drop in performance in blurred images
** Handling of small far away fiducials being viewed head on has improved much
* PerspectiveOps
** Can render pixel in camera frame using IntrinsicParameters
* Created FactoryMultiViewRobust for simplifying the creation of robust versions of solutions to PnP, essential, homography
* Camera Model
** Support for tangential distortion has been added
** Intrinsic parameters can now use a flow style assignment of parameters
** Removed support for flipY to simplify the code. Just flip the image if this is an issue.
** Lens distortion. More abstracted
* LensDistortionOps
** refactored several functions to make it more consistent and easier to use
** Change fullView to expand
** Many functions will now correct for lens distortion.
* Square grid calibration target
** Fixed.  Multiple bugs were introduced at some point in the past but were not caught due to the lack of regression tests
** Change underlying algorithm.  Now uses polygon detector for corners.
* Chessboard calibration target
** Complete re-write.  Now uses polygon detector
** Corner precision appears to have improved and runs faster
* Calibration
** A single class fully specifies the calibration target now
** Intrinsic parameters can now use a flow style assignment of parameters
* Interpolation
** Can specify a border handling algorithm now
* PixelMath
** Added minus(image,scalar)
** Added minus(scalar,image)
* Distortion
** Scale once again goes from in.width/out.width instead of (in.width-1)/(out.width-1)
*** The former is correct, but you have to deal with interpolating values like 9.5 when there are 10 pixels (9 is largest index)
** Added FDistort
*** Much easier to use and more flexible than the procedural fuctions in DistortImageOps
* FactoryDerivativeSparse
** Added sobel, prewitt, three, two0, two1
* Gradient Two0 and Two1
** There are two different ways to define the gradient from two samples, depending on the zero index.
** Two0 is [1] * [0] and Two1 is [0] * [-1].
** Before only one of these variants was available
* UtilImageIO
** Can save an image directly that is in BoofCV format
* Shape Features
** Corner fitting algorithm that uses the tangent of the gradient
** Black convex polygon detector
** Polygon fitting
* ShowImages
** Will now display any BoofCV image directly.
* Android
** Can convert from 8888 to 3 channel multi-spectral images
** Moved NV21 out of Android because it's also useful with Webcams
* Added support for YV12 image format
* BinaryImageOps
** BinaryImageOps.labelToBinary() now has an easier to use variant.  No need to explicitly declare a boolean array
** Added thin() operator for thinning/skeletonization
* Template Matching
** Can provide a mask for a template and effectively make pixels transparent or translucent
** Requested by Rafael Maus and others
* ConvertBufferedImage
** Tweaked defaults for boof to BufferedImage.  Single band images return single band images.
*** Thanks thhart for pointing this out
** Added partial support for images encoded with SunWritableRaster
** Much improved support of BoofCV Interleaved images
* ThresholdImageOps
** Changed threshold up from >= to >.
** Turns out the original choice was bad.  Images were not inverses of each other
** Was possible the threshold an image with two values up and end up with all 0.
* PyBoof has been added to integration
** Python wrapper for BoofCV
** Thanks Romotive allowing donating this code!
* GHistogramFeatureOps, Histogram_F64, HistogramFeatureOps
** Computes color histograms with the intent that they can be used as features
** Supports an arbitrary number of color bands
** Can also be computed from a list of pixel values
** arbitrary min/max values and number of bins also supported
** Example added demonstrating how to look up images with similar histograms
* GImageDerivativeOps
** General cleaning up the API
** Fewer functions, but uses enum for specific type
** Function for AnyImageDerivative is clearly named and more useful
* ImageMiscOps
** fill band and bands
** insert band
* Background Model / Motion Detection
** For stationary cameras and moving cameras
** Basic: pixels modeled with a fading average
** Gaussian: pixels modeled with a fading Normal distribution

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