error: ‘CV_CHAIN_APPROX_SIMPLE’ was not declared in this scope 29 | findContours(edges, contours, cv::RetrievalModes::RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE); | ^~~~~~~~~~~~~~~~~~~~~~
时间: 2023-06-30 20:15:14 浏览: 115
这个错误提示说明在你的代码中使用了OpenCV2.x中的API。在OpenCV3.x及更高版本中,常量CV_CHAIN_APPROX_SIMPLE已经被改为cv::CHAIN_APPROX_SIMPLE。你可以尝试将代码中的CV_CHAIN_APPROX_SIMPLE替换为cv::CHAIN_APPROX_SIMPLE,然后重新编译。如果还有其他类似问题,可以查阅OpenCV官方文档来获取最新的API。
相关问题
[ 34%] Built target _navfn_generate_messages_check_deps_SetCostmap /home/li/catkin_ws/src/robot_vision/src/getimage.cpp:29:35: error: ‘CV_RETR_EXTERNAL’ was not declared in this scope 29 | findContours(edges, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE); | ^~~~~~~~~~~~~~~~
看起来你的代码中使用了OpenCV 2.x的API,而CV_RETR_EXTERNAL这个常量在OpenCV 3.x中被改为了cv::RetrievalModes::RETR_EXTERNAL。你可以尝试将代码中的CV_RETR_EXTERNAL替换为cv::RetrievalModes::RETR_EXTERNAL,然后重新编译。如果还有其他类似问题,可以查阅OpenCV官方文档来获取最新的API。
cv::findContours(binary, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE) 中,使用一个矩形框框住contours中的所有轮廓
如果您想要使用一个矩形框住contours中的所有轮廓,可以使用`cv::boundingRect`函数来计算所有轮廓的整体边界矩形。以下是一个示例代码:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
int main()
{
// 读取图像
cv::Mat image = cv::imread("image.jpg");
// 转换为灰度图像
cv::Mat gray;
cv::cvtColor(image, gray, cv::COLOR_BGR2GRAY);
// 二值化图像
cv::Mat binary;
cv::threshold(gray, binary, 128, 255, cv::THRESH_BINARY);
// 寻找轮廓
std::vector<std::vector<cv::Point>> contours;
cv::findContours(binary, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);
// 计算所有轮廓的整体边界矩形
cv::Rect boundingRect;
for (const auto& contour : contours)
{
// 扩展整体边界矩形
boundingRect |= cv::boundingRect(contour);
}
// 在原始图像上绘制整体边界矩形
cv::rectangle(image, boundingRect, cv::Scalar(0, 255, 0), 2);
// 显示结果
cv::imshow("Bounding Rect", image);
cv::waitKey(0);
return 0;
}
```
在这个示例中,我们首先找到所有的轮廓,然后遍历每一个轮廓,使用`cv::boundingRect`函数计算每个轮廓的边界矩形,并通过扩展整体边界矩形的方式获得所有轮廓的整体边界矩形。最后,我们在原始图像上绘制整体边界矩形。
同样,请确保将代码中的"image.jpg"替换为您自己的图像路径,并正确安装和配置OpenCV库。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)