NeuralGas clustering algorithm (Patch #559)
Hello, i would like to make a small contribution to opencv by submitting a neural gas implementation (a clustering algorithm).
Neural gas (as most clustering algorithms) works like this in general:
project an input vector to the network and network will adapt it@s nodes in order to converge to the distribution (the inputs).
The api is simple:
You pass a CvMat* (or cv::Mat&) and all the necessary parameters: number of nodes, total number of iterations and starting/ending adaptation and neihbourhood range.
Then you can call:
1) train_auto: which call the train method and peaks an input vector from the distribution randomly
2) train: without an argument peaks an input from the distribution or you can provide your own input (CvScalar or cv::Scalar) as argument.
If interested, i could improve it, like implementing more inherited methods, documentation, etc. Also, i could provide more algorithms like gng, itm and som.
The code has been completely transfered towards C++ interfacing!
In order to get a merge however we still need documentation, regression tests and an example of how this works!
I could do the documentation, however never done regression tests before and haven't used the algorithm myself yet.
So any help is always apreciated!
The correct pull request can be found here! https://github.com/Itseez/opencv/pull/1178
- Assignee changed from Maria Dimashova to makis -