Java 计算机视觉库,BoofCV 0.19 发布
BoofCV 是一个 Java 的全新实时的计算机视觉库,BoofCV 易于使用而且具有非常高的性能。它提供了一系列从低层次的图像处理、小波去噪功能以及更高层次的三维几何视野。使用 BSD 许可证可在商业应用中使用。
这里有篇英文文章用来介绍 BoofCV 的使用。
此版本改进内容如下:
- 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