标识符calcHist()在C ++中的OpenCV中未定义

时间:2015-08-29 15:12:01

标签: c++ opencv visual-studio-2013

我正在尝试使用C ++中的OpenCV计算图像的直方图,但我收到此错误:

error: identifier calcHist() is undefined 

在Visual Studio 2013中的C ++ OpenCV中

这是我的代码

#include<iostream>
#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>

using namespace std;
using namespace cv;

int main(){
    Mat original=imread("my.jpg",CV_LOAD_IMAGE_UNCHANGED);
    namedWindow("Original Image",CV_WINDOW_NORMAL);
    imshow("Original Image",original);
    waitKey(5000);  
    calcHist();
}

但Visual Studio标识cvCalcHist()函数,不幸的是我使用calcHist()函数的所有参考资料,我很满意。

2 个答案:

答案 0 :(得分:1)

由于calcHist位于图像处理(imgproc)模块中,因此您应该将其包括在内:

#include <opencv2\imgproc\imgproc.hpp>

请注意,OpenCV还提供了一个包含所有标头,其中包含了所有模块(nonfree模块除外):

#include <opencv2\opencv.hpp>

答案 1 :(得分:0)

您调用calcHist()但不提供参数。 calcHist函数的所有重载都没有所有默认值,因此如果您希望它有效,则需要传递更多参数。

有关C ++示例,请参阅OpenCV文档here