c++ - How to create a Mat on OpenCV for making an histogram -


I am creating a histogram stored in a matrix on OpenCV.

So, if I match a result, I'll +1 something on the index.

My mat is:

Mat countframe matrix = mat :: zero (9, 9, cv_8u);

When I try to sum 1 already in the set index (0), then I do:

  int value matrixframe = Ginframematics.et  

I tried in other ways, nothing else happened before changing the other problems for unsigned char to int .

My results are:

  1. Or all the matrix is ​​zero.
  2. Or I find something like this:

    [2.3693558-38, 0, 0, 0, 0, 0, 0, 0, 0; 2.3693558e-38, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0]

And I never store data on (0,0) I am or (0,1) or (1.0) or (1,1) ,: (

What would you suggest? Thanks

You are meeting a very simple mistake,

  valueMatrixFrames ++;  

Do not match the matrix space valueMatrixFrames .

Correct way

Suppose you (1, 1) ,

  countFramesMatrix.at  (1,1) ++;  

OUTPUT

  [0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 1, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]  

Running the command again will increase the value (1, 1) to 2.

[0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 2, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 0, 0, 0, 0, 0, 0]

So, your histogram is ready!


Comments