OpenCV 的 boundingRect 使用例子 C++实现
时间: 2024-04-21 11:23:28 浏览: 21
当然,这是一个使用OpenCV的C++实现的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);
// 遍历每个轮廓,获取boundingRect
for (const auto& contour : contours)
{
// 计算boundingRect
cv::Rect boundingRect = cv::boundingRect(contour);
// 在原始图像上绘制boundingRect
cv::rectangle(image, boundingRect, cv::Scalar(0, 255, 0), 2);
}
// 显示结果
cv::imshow("Bounding Rect", image);
cv::waitKey(0);
return 0;
}
```
这个示例演示了如何使用OpenCV的`boundingRect`函数来计算轮廓的边界矩形,并在原始图像上绘制出找到的边界矩形。首先,加载图像并将其转换为灰度图像。然后,使用阈值化将灰度图像转换为二值图像。接下来,使用`findContours`函数找到二值图像中的轮廓。然后,遍历每个轮廓,使用`boundingRect`函数计算该轮廓的边界矩形,并在原始图像上绘制出边界矩形。最后,显示带有边界矩形的图像。
请注意,您需要将代码中的"image.jpg"替换为您自己的图像路径。此外,确保您已经正确安装和配置了OpenCV库。