BoofCV Change Log
From BoofCV
Jump to navigationJump to searchChange 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