error: no matching function for call to ‘rectangle(std::vector<cv::Mat>&, cv::Rect&, cv::Scalar, int)’ cv::rectangle(imgs_buffer[b], r, cv::Scalar(0x27, 0xC1, 0x36), 2);
时间: 2024-04-01 19:34:49 浏览: 19
这个错误提示显示了在调用函数`rectangle`时出现了问题。具体来说,函数调用的参数没有匹配到函数定义中的任何一个版本。错误提示中给出了函数调用的参数列表,以及函数定义中的参数类型。你需要检查调用的参数类型和数量是否正确,以及是否有参数类型不匹配的情况。如果需要,可以查看函数定义并确保参数类型与定义一致。
相关问题
error: no matching function for call to ‘std::vector<frameprocess_param>::push_back(int&)’
这个错误提示是因为你尝试将一个整数类型的值 `int&` 添加到 `std::vector<frameprocess_param>` 容器中,但是容器中存储的是 `frameprocess_param` 类型的对象,两者类型不一致,因此编译器无法匹配到对应的 `push_back` 函数。
你需要将整数类型的值转换为 `frameprocess_param` 类型的对象,然后再添加到容器中。例如:
```
int value = 10;
frameprocess_param param(value); // 假设有一个构造函数可以接受 int 类型的参数
std::vector<frameprocess_param> params;
params.push_back(param); // 将参数添加到容器中
```
或者你可以直接在 `push_back` 函数中创建 `frameprocess_param` 类型的对象:
```
int value = 10;
std::vector<frameprocess_param> params;
params.push_back(frameprocess_param(value)); // 创建对象并添加到容器中
```
error: no matching function for call to ‘pcl::PointIndices::PointIndices(std::vector<int>&)
这个错误是因为pcl::PointIndices构造函数的参数类型应该是const std::vector<int>&,而您传递的是std::vector<int>&,也就是说它要求传入一个常量引用,而您传入的是一个非常量引用,因此无法匹配。您可以将代码中的
```c++
std::vector<int> indices(2);
```
改成
```c++
const std::vector<int> indices{ 0, 2 };
```
或者使用下面的方式进行初始化:
```c++
std::vector<int> indices{ 0, 2 };
const pcl::PointIndices::Ptr inliers(new pcl::PointIndices);
inliers->indices = indices;
```
这样就可以避免这个错误了。