that’s assigning the same value to all elements of the input vector. it’s flat. do you expect this thing to distinguish different levels at any input?
I haven’t done anything with OpenCV’s ANN_MLP. perhaps the thing needs to be told that it’s doing classification, vs. regression?
in the docs I found an alarming sentence:
All the weights are set to zeros. Then, the network is trained using a set of input and output vectors.
that should be randomized, or else all neurons will be adjusted the same.
UPDATE_WEIGHTS
Update the network weights, rather than compute them from scratch. In the latter case the weights are initialized using the Nguyen-Widrow algorithm.
TrainFlags has UPDATE_WEIGHTS
. worth a try?