BoofCV Change Log

From BoofCV
Revision as of 21:38, 20 September 2015 by Peter (talk | contribs)
Jump to navigationJump to search

Change Log

Date Format: year/month/day


Date  : 2015/09/20 Version : Alpha 0.19

  • Removed -1 from CachedSineCosine_F32
    • Change suggested by Jochem
    • Original code could cause problems for edge cases in hough transform
  • Moved BufferedImage to IO package since it is swing dependent
    • Suggested by Baha Elkassaby
  • JCodec
    • Formally added it back in since it works on Android videos
    • Added utilities to convert Picture into BoofCV formatted images
  • Images can be serialized again
    • Made ImageType serializable now
    • Fixed bug where subimages were not assigned an image type.
  • Scene classification
    • Bag-of-Words based techniques
    • K-Nearest-Neighbor classification. Learning and Classifier
  • Image setTo() will now automatically resize the image to match it's input
  • Added invert option to visualizing binary images
    • swing and android
  • Added in-place CW and CCW image rotation
  • Fiducials
    • Image square fiducials can now have their width individually set
    • Square based fiducials now use the new polygon detector and benefit from its improved subpixel
    • Fixed bug where the returned orientation was inconsistent with the JavaDoc
    • Fixed another bug that caused the sides to "flip" depending on view angle
    • 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