如何通过c++和opencv挑选出图像中的矩形轮廓,并给出代码
时间: 2024-05-11 12:17:34 浏览: 21
这是一个技术问题,可以回答。
您可以使用OpenCV中的findContours函数来找到图像中的矩形轮廓。下面是一个简单的示例代码:
```
#include <opencv2/opencv.hpp>
int main()
{
// 加载图像
cv::Mat image = cv::imread("your_image_path");
// 灰度化图像
cv::Mat gray;
cv::cvtColor(image, gray, cv::COLOR_BGR2GRAY);
// 二值化图像
cv::Mat binary;
cv::threshold(gray, binary, 0, 255, cv::THRESH_BINARY);
// 查找轮廓
std::vector<std::vector<cv::Point> > contours;
std::vector<cv::Vec4i> hierarchy;
cv::findContours(binary, contours, hierarchy, cv::RETR_TREE, cv::CHAIN_APPROX_SIMPLE);
// 绘制轮廓
cv::Mat result = image.clone();
for (int i = 0; i < contours.size(); i++)
{
cv::Rect rect = cv::boundingRect(contours[i]);
cv::rectangle(result, rect, cv::Scalar(0, 255, 0), 2);
}
// 显示结果
cv::imshow("Result", result);
cv::waitKey();
return 0;
}
```
上述代码可以加载一幅图像,将其灰度化并二值化,然后使用findContours函数查找轮廓,并使用boundingRect函数找到轮廓的边界矩形,最后在原始图像上绘制矩形轮廓。
相关推荐
![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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)