Feature detection and Texture2D processing
A Unity cross-platform library for image recognition and Texture2D processing.
The library enables blob and edge detection/extraction and simple geometric shape recognition with capabilities for custom build descriptors, and additionally a multitude of Texture2D processing tools.
The library contains the following features:
-
Blob detection/extraction
-
Stream analysis
-
Vector2 extensions methods (includes Ramer–Douglas–Peucker algorithm)
-
Circle Hough Transform
-
Vasvalingam's Line Simplification
-
Color comparison: Euclidean, CIE76, Low-Cost Approximation
-
Simple shape recognition (can be further expanded)
-
Edge detection (Canny, Kirsch, Sobel, Prewitt)
-
Binarization (simple cut-off, Bradley local thresholding, Otsu's methods)
-
Convolution filters (with ability to easily introduce self-made kernels)
-
Fast Gaussian filters (advanced Gaussian filters utilizing threading or recursive algorithm)
-
Point filters e.g. grayscale conversion, negative and sepia filters, contrast correction, color[s] swapping, alpha updating, manual color channels modifiers
Notes on the project:
-
Many times I have been asked about the usage of this asset in AR projects. For the initial release, it was not feasible due to speed limitation.
-
Initial stream analysis release (v. 1.2) provided background and knowledge on how to operate in a stream environment but was too slow for practical purposes.
-
Since, I have introduced a new, vastly simplified blob detection algorithm (v. 1.3). It is simpler and less flexible but introduces a significant speed boost.
-
The speed was further increased in ver. 1.5 via Color32[] input manipulation (see this YouTube video).
-
Sadly, using C++ failed to provide improved speed, but other tests are necessary to fully abandon this route.
-
Version 1.6 is live, it contains color comparison, Circle Hough Transform, and Vasvalingam's Line Simplification algorithms.
-
The code was cleaned in Version 1.8, old and obsolete methods were removed and the code was ported to Unity 2018.3 version.