我在使用maxMaxLoc时遇到了一些麻烦,当我尝试将Point作为参考传递给max_Loc时,我得到了一个错误。环顾四周后,我发现了很多使用 double 代替点的人的例子,但事实并非如此。

这里的代码:

int ImageEvaluator::findPot()
{
    Point max_Loc;
    double max_Val;
    while (true)
    {
        for (int j = 0; j < 12; j++)
        {

            cv::Mat compResult;
            cv::matchTemplate(references[7], templates[7][j], compResult,
                              CV_TM_CCOEFF_NORMED);
            cv::minMaxLoc(compResult, NULL, &max_Val, NULL, &max_Loc);

            if (max_Val > minAcceptableValue)
            {
                std::cout << "Stand up and shout how the **** did that just work" << std::endl;
                return joydivision;
            }
        }
    }
}

错误C2665'cv::minMaxLoc':2个重载均不能转换所有参数类型

这是一个发现大量数字的小函数,我在python中运行得很好。我一改用c++,对我来说,上述一切都是不必要的错误。

感谢所有帮助。

谢谢

最佳答案

大家好,在挠挠头后,事实证明我的观点不正确。

更改后:

Point max_Loc;

进入:
cv::Point min_Loc(0,0),max_Loc(0,0);

它似乎奏效了。感谢您的所有帮助。 :)

关于c++ - minMaxLoc()OpenCV电视剧,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46481108/

10-11 01:10