0

これが私のプログラムで使用しているコードです:

calcHist( &pre_img, 1, channels, Mat(), // do not use mask
                 hist, 1, histSize, ranges,
                 true, // the histogram is uniform
                 false );

       Mat histNorm = hist / (pre_img.rows * pre_img.cols);
       double entropy = 0.0;
       for (int i=0; i<histNorm.rows; i++)
       {
          float binEntry = histNorm.at<float>(i,0);
          if (binEntry != 0.0)
          {
            entropy -= binEntry * log(binEntry);
          }
       }
       cout<<entropy<<endl;

最初のことは、entropy -= binEntry * log2(binEntry);エラーが発生するように入力するlog2と、VS 2010 に数学と数値のライブラリを追加しましたが、それでもエラーが発生し、コードの 2 番目のポイントは、同じビデオで実行するたびです。実行ごとに異なる値を教えてください。たとえば10.0 , 2.0 , 0.05、次にプログラムを実行するときに同じフレームよりも得られる場合は、表示してください8.0 , 1.5 , 0.01 these are sample values not exact

4

1 に答える 1