Visual studio 2010 在OpenCV中使用calcHist()函数时出现参数列表错误

Visual studio 2010 在OpenCV中使用calcHist()函数时出现参数列表错误,visual-studio-2010,visual-c++,image-processing,opencv,histogram,Visual Studio 2010,Visual C++,Image Processing,Opencv,Histogram,我正在尝试使用以下代码: cv::MatND hist; cv::Mat image = cv::imread("image.bmp"); float *range = new float[33]; int histSize = 32; int channel = 0; for (int i = 0; i < 33; ++i) range[i] = (float)6602.0 + 21*i; float **range

我正在尝试使用以下代码:

    cv::MatND hist;
    cv::Mat image = cv::imread("image.bmp");
    float *range = new float[33];
    int histSize = 32;
    int channel = 0;
    for (int i = 0; i < 33; ++i)
        range[i] = (float)6602.0 + 21*i;
    float **ranges = &range;
    cv::calcHist(&frame.get<0>(), 1, &channel, cv::Mat(), hist, 1, &histSize, ranges, false, false);
我知道这有点傻,但我快要发疯了。感谢您的帮助。 PS:我在微软VisualC++的64位环境下使用OpenCV2.4.2。p> 最好的


Baris

如果您的OpenCV版本比2.3版本更新(似乎是这样),您应该知道
cv::Mat
cv::MatND
是组合在一起的

但是关于错误,正如在新的OpenCV
cv::Mat
中可以有任意数量的维度一样,他们已经更改了定义,如您所见:

您还可以在全新的教程中看到,一个简单的
cv::Mat
就可以做到这一点:

cv::Mat hist;

使用将帮助您解决这些问题,不幸的是,大多数可用的教程和代码都基于旧的OpenCV,该版本已进行了重大更改以达到当前版本。

不客气。如果它对您有所帮助,您可以接受它作为一个答案:)我使用了Mat对象,但我仍然面临visual studio中的错误。所有其他功能都正常工作。谁能help@Saikrishna您的确切错误和OpenCV版本是什么?很抱歉发布此问题,我犯了一个非常基本的错误,我没有传递图像的地址,我将其作为值发送。所以错误不断地出现。谢谢你的回复。
C++: void calcHist(const Mat* images, int nimages, const int* channels, InputArray mask, OutputArray hist, int dims, const int* histSize, const float** ranges, bool uniform=true, bool accumulate=false )
C++: void calcHist(const Mat* images, int nimages, const int* channels, InputArray mask, SparseMat& hist, int dims, const int* histSize, const float** ranges, bool uniform=true, bool accumulate=false )
cv::Mat hist;