我在使用minMaxLoc时遇到了一些麻烦,当我尝试将Point in作为参考传递以获取max_Loc时出错。环顾四周之后,我发现了很多人使用双重而不是点的例子,但事实并非如此。
这里是代码:
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&#39; cv :: minMaxLoc&#39;:2个重载中没有一个可以转换所有参数类型
这是一个小函数,可以找到多个数字,我在python中运行得很好。一旦我转到c ++,它就会以上述不必要的错误的形式为我走下坡路。
感谢所有帮助。
由于
答案 0 :(得分:1)
大家after everyone after地发现我正在宣布我的观点不正确。
更改后:
Point max_Loc;
分为:
cv::Point min_Loc(0,0),max_Loc(0,0);
它似乎有效。谢谢你的帮助大声笑。 :)