基于c++下opencv绘制最大外接矩形的代码
时间: 2023-04-05 08:01:35 浏览: 283
以下是基于 C 语言下 OpenCV 绘制最大外接矩形的代码:
```c
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("test.jpg", IMREAD_COLOR); // 读取图片
if (img.empty()) // 判断图片是否读取成功
{
cout << "Could not read the image" << endl;
return -1;
}
Mat grayImg;
cvtColor(img, grayImg, COLOR_BGR2GRAY); // 转换为灰度图像
Mat binaryImg;
threshold(grayImg, binaryImg, 0, 255, THRESH_BINARY | THRESH_OTSU); // 二值化
vector<vector<Point>> contours;
findContours(binaryImg, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE); // 查找轮廓
double maxArea = 0;
Rect maxRect;
for (size_t i = 0; i < contours.size(); i++)
{
double area = contourArea(contours[i]); // 计算轮廓面积
if (area > maxArea)
{
maxArea = area;
maxRect = boundingRect(contours[i]); // 计算最大外接矩形
}
}
rectangle(img, maxRect, Scalar(0, 0, 255), 2); // 绘制最大外接矩形
imshow("Result", img); // 显示结果
waitKey(0);
return 0;
}
```
希望能对您有所帮助。
阅读全文