SharpStitch Changelog

The list of new features and fixes in the latest SharpStitch releases

2.8.1 (current) (August 24, 2015)

Added XML output for the computed mosaic
Added 'symmetric transfer error' metric to transform estimation
Added computing iteration count in RANSAC estimator
Added support for large objects on 64-bit platforms (over 2 GB)

Changed target .NET Framework version to 4.5
Changed default XML API from System.Xml to System.Xml.Linq

Improved image encoding performance
Improved mosaic recognition performance
Improved mosaic optimization performance
Improved efficiency of transform inverse computation
Improved multi-core processing efficiency

Fixed rendering of 360 degree panoramic image mosaics
Fixed mask padding computation
Fixed guided matching in local estimation

2.8.0 (June 22, 2015)

Added multi-core processing support to mosaic recognizers
Added offline activation support

Improved masked input support
Improved performance of image loading
Improved performance of fast image blur, copying and general image processing

Removed separate x86 and x64 builds; all binaries are AnyCPU


Added single-image lens distoriton calibration
Added new samples

Improved exposure fusion


Added GPU processing support (CUDA, OpenCL)
Added 8, 16 and 32 bit color depth support
Added GPU processing to ConvolutionJob
Added GPU processing to FastBlurJob
Added CustomTransform class (support for custom transformations)
Added Mosaic.FromFile for loading SharpStitch projects directly from file
Added ImagingShop.Core.Imaging.Interpolation namespace (replaces Interpolator-relaed classes in ImagingShop.Core.Pictures)
Added IntegerPoint, FloatingPoint, IntegerSize, FloatingSize classes
Added NaturalComparer for alphanumeric sorting of indexed image files

Improved image interpolation performance
Improved filling canvas with background color (filling only background area after mosaic has been rendered)
Improved efficiency of parallel shift estimation in ShiftStitchingJob
Changed default bit depth to 8 bits

Fixed masked convolution (inaccurate responses at mask edges)
Fixed FastBlurJob accuracy on some filter sizes
Fixed overlap boundaries computation in PlanarRenderer
Fixed LinearPathFinder returning correct number of paths when FindAllPaths setting is true
Fixed ColorSpaceTransform.GetColorComponents
Fixed correlation computation in direct matching


Added PictureProvider.PictureCount property
Added HarrisKeypointDetectorData.LevelsToProcess property

Improved performance of Transform classes

Fixed blending mask generation when PlanarRenderer and TranslationTransform are used


Added AnyCPU target platform
Added custom feature detector support
Added full 360 degree spherical mosaic support
Added rendering implementations for planar, rotational and general mosaics
Added single-parameter rotation transform
Added output mosaic size and other information in the mosaic project
Added 'parallel' command-line argument
Added intermediate output for debugging (-debug option in SharpStitchApp.exe)
Added robust keypoint searching by searching in keypoint's respective scale-space octave only
Added Scaling1Transform, Scaling2Transform

More general implementation of rotation transforms (allows more implementations of rotation transform)
GraphEdge class renamed to MosaicGraphEdge
GraphNode class renamed to MosaicGraphNode
Algorithm implementation classes made public

Fixed mosaic recognition with dropped images
Fixed unnecessary image calibration before rendering when calibration parameters are already present in mosaic project
Fixed automatic presmoothing in keypoint detection
Fixed HarrisKeypointDetector proper patch assignment when (AssignOrientation option is off)
Fixed HarrisKeypointDetector generating duplicate keypoint indices
Fixed padding computation in MaskMaker
Fixed exception when debugging calibration and first images is not contained in the mosaic
Fixed comment typos

Removed TwoBandBlender in favor of MultibandBlender


Fixed Trial edition build


Changed RotationTransform access modifier to public

Fixed setting custom background color
Fixed Rotation.ToString()
Fixed creating SharpStitch project with color calibration

Fixed IndexOutOfRange exception in DistanceMaskMaker when creating transition mask
Fixed disposed object appearing when stitching with CachedPictureProvider
Fixed CachedPictureProvider.Dispose()


Added parallel processing support
Added PictureProvider class to support custom image sources
Added IsometryTransform
Added SimilarityTransform

Improved focal length estimation in rotational mosaic optimization
Improved precision of transform estimation
Removed dependency on ComponentOwl.Core.dll
Removed Warning state of job, Exception is thrown instead

Fixed StitchingJob status being Success even when focal length estimation in mosaic optimization failed
Fixed numerical stability and precision control of Levenberg-Marquardt optimization


Improved speed of LinearPathFinder when FindAllPaths parameter is true

Fixed postcondition in Calibrator
Fixed error in ShiftStitchingJob when no keypoints were found to perform image calibration
Fixed correlation value out of bounds in TemplateMatching due to numerical precision loss
Fixed image calibration parameter estimation when the calibration pairs are the same (same locations and values)


Added ShiftStitchingJob for large translational mosaics
Added photometric calibration support (exposure, vignetting)
Added SeamMaskMaker
Added HorizontalTranslationTransform, VerticalTranslationTransform

Improved padding computation in SeamMaskMaker
Improved PathFinder (searching for all connected components)
Improved speed of nonlinear optimization (GlobalEstimator)

Renamed SharpStitchJob to GeneralStitchingJob
Mosaic structures made mutable

Fixed index ouf range using rendering seams
Fixed rendering of canvas labels on debug output (wrong index in internal palette)


Added StitchingSample

Fixed cancelling SharpStitchJob during keypoint detection.


Added direct estimation of TranslationTransform from image data
Added blending mask padding support (added MaskMakerData.MaskPadding property)

Fixed canvas measurement when image boundaries are ordered in a bottom-up fashion
Fixed 1px top and left border of image removed during rendering in case of pure translation


Added optimal seam blending based on graph cuts (PixelCutMaskMaker, SegmentCutMaskMaker)
Added automatic straightening of rotational panoramas (Rotation.GetStraighteningRotation)
Added optional rendering of seams
Added keypoint detection for just a single image
Added automatic crop rectangle detection (Picture.FindCrop() extension methods)

Improved keypoint detector (HarrisKeypointDetector)

Added multi-scale detection
Added image normalization
Improved corner measure

Improved mosaic optimization: Images are pre-aligned for faster convergence (BundleGlobalEstimator)
Improved blurring restricted to image region to reduce artifacts (TwoBandBlender, MultiBandBlender)
Improved blending mask based on boundary distances (DistanceMaskMaker)
Improved keypoint filter: Keypoints are filtered on every scale separately (KeypointFilter)

Fixed gradient of a translation transform (TranslationTransform.GetGradient)
Fixed setting focal length in bundle adjustment on other that rotational mosaics (BundleGlobalEstimator)
Fixed not stitching mosaic when only a single image is provided
Fixed infinite loop in guided matching


Initial release

Download SharpStitch free 60-day trial package


Have a project in mind? Contact us to see how can we help!

Contact Us