gpt4 book ai didi

visual-studio-2010 - 在 OpenCV 中使用 calcHist() 函数的参数列表错误

转载 作者:行者123 更新时间:2023-12-02 16:42:36 26 4
gpt4 key购买 nike

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

    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);

图像是灰度的,所以我使用第零个 channel 来获取直方图,我知道范围是统一的,但我想确切地知道我的边界,并且图像是 CV_16U 类型(在原始代码中,图像是从相机,但这太长了,不能在这里包含)

我的问题是在编译时出现以下错误:
    error C2665: 'cv::calcHist' : none of the 3 overloads could convert all the argument types
C:\opencv\build_x64\include\opencv2/imgproc/imgproc.hpp(670): could be 'void cv::calcHist(const cv::Mat *,int,const int *,cv::InputArray,cv::OutputArray,int,const int *,const float **,bool,bool)'
C:\opencv\build_x64\include\opencv2/imgproc/imgproc.hpp(676): or 'void cv::calcHist(const cv::Mat *,int,const int *,cv::InputArray,cv::SparseMat &,int,const int *,const float **,bool,bool)'
while trying to match the argument list '(cv::Mat *, int, int *, cv::Mat, cv::MatND, int, int *, float **, bool, bool)'

我知道这有点傻,但我快要发疯了。任何帮助表示赞赏。
PS:我在 64 位环境中的 Microsoft Visual C++ express 上使用 opencv 2.4.2。

最好的,

巴里斯

最佳答案

如果您的 OpenCV 版本比 2.3 新(似乎是这种情况),您应该知道 cv::Matcv::MatND被结合起来。

但是关于错误,如新的 OpenCV cv::Mat可以有任意数量的维度,他们改变了定义,如你所见 here :

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 )

您也可以在全新教程中看到 here , 一个简单的 cv::Mat会做的伎俩:
cv::Mat hist;

使用 new documentation将帮助您清除这些东西,不幸的是,大多数可用的教程和代码都是基于旧的 OpenCV,它已经进行了重大更改以达到当前版本。

关于visual-studio-2010 - 在 OpenCV 中使用 calcHist() 函数的参数列表错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com