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