opencvで「calcHist」という関数を使用しました。そしてその宣言は次のとおりです。
void calcHist(const Mat* arrays, int narrays, const int* channels, InputArray mask, OutputArray hist, int dims, const int* histSize, const float** ranges, bool uniform=true, bool accumulate=false )
コードスニペットを作成しました。
Mat img = imread("lena.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat* arrays = &img;
int narrays = 1;
int channels[] = { 0 };
InputArray mask = noArray();
Mat hist;
int dims = 1;
int histSize[] = { 256 };
float hranges[] = { 0.0, 255.0 };
float *ranges[] = { hranges };
calcHist(arrays, narrays, channels, mask, hist, dims, histSize, ranges);
次にエラーが発生しました:IntelliSense:オーバーロードされた関数 "calcHist"のインスタンスは引数リストに一致しませんが、
'const'の前に'const'を付けると'float * ranges [] = {ranges}; ' const float *ranges[] = { hranges };
大丈夫のように。
したがって、なぜこの「const」が必要であり、histSizeの前の「const」は必要ないのですか。