私は以下のコードでnormalize関数を使用しています。私の理解は、ヒストグラムを正規化するとビンが1つに集計されるということでしたか?しかし、私がそれらをすべて追加すると、結果は1つ上がり続けます。私は何か間違っているのか、その機能が何を誤解しているのか分かりません。OpenCVノーマライズ関数、結果が1に足りない
//read in image
Mat img = imread("image.jpg",1);
vector<Mat> planes;
split(img, planes);
//calculate hist
MatND hist;
int nbins = 256; // hold 256 levels
int hsize[] = { nbins }; // one dimension
float range[] = { 0, 255 };
const float *ranges[] = { range };
int chnls[] = {0};
calcHist(&planes[0], 1, chnls, Mat(), hist,1,hsize,ranges);
//normalise
normalize(hist,hist,1);
float tot = 0;
for(int n = 0;n < nbins; n++)
{
float binVal = hist.at<float>(n);
tot+=binVal;
}
cout<<tot;
私はnormalize(hist、hist、0、1、NORM_MINMAX、-1、Mat() –