计算contour 外接矩形 c++ opencv
时间: 2024-10-26 18:17:11 浏览: 52
在 OpenCV (开源计算机视觉库) 中,计算轮廓(Contour)的外接矩形通常用于确定轮廓形状的基本尺寸。外接矩形是最小的长方形,完全包含轮廓的所有点。以下是使用 C++ 和 OpenCV 编程计算轮廓外接矩形的一般步骤:
1. 导入必要的库:
```cpp
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc.hpp>
```
2. 加载图像并转换为灰度:
```cpp
cv::Mat img = cv::imread("image.jpg", cv::IMREAD_GRAYSCALE);
```
3. 进行边缘检测(如 Canny 边缘检测):
```cpp
cv::Canny(img, edges, threshold1, threshold2);
```
4. 找到轮廓(Contours):
```cpp
std::vector<std::vector<cv::Point>> contours;
cv::findContours(edges, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);
```
5. 遍历轮廓,计算每个轮廓的外接矩形:
```cpp
for (const auto& contour : contours) {
cv::Rect boundingRect = cv::boundingRect(contour); // 轮廓的外接矩形
std::cout << "Bounding rectangle for contour: (" << boundingRect.x << ", " << boundingRect.y << ") - (" << boundingRect.width << ", " << boundingRect.height << ")" << std::endl;
}
```
6. 结果存储或显示:
如果你需要将这些信息用于进一步处理,比如绘制轮廓及其外接矩形,可以使用 `cv::drawContours` 函数。
阅读全文