Opencv数组的点问题
Opencv array of Point issues
我正在使用Opencv进行基于模板匹配的项目。
我试图定义我从OpenCV函数中获得的点数组minMaxLoc()
,但我得到这些错误:
temp.cpp:45:35: error: ‘minval’ was not declared in this scope
temp.cpp:45:44: error: ‘maxval’ was not declared in this scope
temp.cpp:45:53: error: ‘minloc’ was not declared in this scope
temp.cpp:45:62: error: ‘maxloc’ was not declared in this scope
temp.cpp:56:69: error: request for member ‘cols’ in ‘ref_temp’, which is of non-class type ‘cv::Mat [7]’
temp.cpp:56:93: error: request for member ‘rows’ in ‘ref_temp’, which is of non-class type ‘cv::Mat [7]’
make: *** [temp.o] Error 1
这是我写的:
Point minloc_array[7],maxloc_array[7];
double minval, maxval;
Point minloc, maxloc;
int temp_count; for(temp_count=0;temp_count<8;temp_count++)
{
cv::matchTemplate(ref_image, ref_temp[temp_count], des1, CV_TM_CCORR_NORMED);
cv::minMaxLoc(des1, &minval, &maxval, &minloc, &maxloc);
while (true){
double minval, maxval;
Point minloc, maxloc;
if (maxval >= 0.9){
minloc_array[temp_count]= minloc;
maxloc_array[temp_count]= maxloc;
std::cout << "Template Matched " << std::endl ;
cv::rectangle(image,maxloc,cv::Point(maxloc.x + ref_temp[temp_count].cols, maxloc.y+ref_temp[temp_count].rows),CV_RGB(0,255,0),2,8);
break;
}
else
std::cout << "Template NOT Matched" << std::endl ;
break;
}
}
我可以看到很多问题。
- minloc_array和maxloc_array的长度不符合for循环的限制。
- cv::minMaxLoc()找到的minval等值将被 声明隐藏
- 您可能没有发布所有相关代码,但似乎ref_temp不是cv::Mat 的数组
- 错误消息的行号与您发布的代码不一致,因此可能后者是不准确的,并且不可能说问题真正是什么(下面的42行,43行真的存在于 中吗?
这是你的代码与我的注释在注释:
41: Point minloc_array[7],maxloc_array[7]; // *** arrays have length 7 (max index is 6)
42: double minval, maxval;
43: Point minloc, maxloc;
44: int temp_count; // *** newline added for readability
44: for(temp_count = 0; temp_count < 8; temp_count++)
// *** should be: temp_count < 7
45: {
46: // *** error message is on this line - is posted code accurate?
47: cv::matchTemplate(ref_image, ref_temp[temp_count], des1, CV_TM_CCORR_NORMED);
48: cv::minMaxLoc(des1, &minval, &maxval, &minloc, &maxloc);
49: while (true){
50: double minval, maxval; // *** hides minval, maxval in outer scope
51: Point minloc, maxloc; // *** likewise
52: if (maxval >= 0.9){
53: minloc_array[temp_count]= minloc;
54: maxloc_array[temp_count]= maxloc;
55: std::cout << "Template Matched " << std::endl ;
56: cv::rectangle(image,maxloc,cv::Point(maxloc.x + ref_temp[temp_count].cols, maxloc.y+ref_temp[temp_count].rows),CV_RGB(0,255,0),2,8);
// *** is ref_temp an array of Cv::Mat??
break;
}
else
std::cout << "Template NOT Matched" << std::endl ;
break;
}
}
相关文章:
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 输入std::数组时出现问题
- 类对象数组的问题会导致崩溃
- 传递二维数组时出现问题
- 从 C++ 中的函数返回数组地址问题
- 使用数组时出现问题
- 打印问题.我在数组中打印值时遇到一些问题
- C++:__aligned(__alignof__) 导致字符数组数据出现问题?
- 将字节数组转换为带有字节序问题的指针
- C++ 填充数组时遇到问题
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 这是使用回溯的 nqueen 问题,但我使用了动态 2d 数组,我的程序编译良好,但不返回任何输出
- 当我尝试通过 arduino 上的引用传递布尔数组时出现问题
- 我正在尝试解决一个需要数组总和值但代码不起作用的问题,我想做这样的事情
- 编写 cin.get() 以接收字符数组时出现问题
- 在 C++ Consol 中的数组中执行用户命令时出现问题
- 存储另一个函数返回的布尔数组时遇到问题
- 当我在 CLion 中读取数组中的 txt 文件时C++编码问题
- 运行时C++数组初始化问题
- 我在解决此错误时遇到问题.我正在努力在主函数中传递数组