これが私のプログラムで使用しているコードです:
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