从原图中截取cv::RotatedRect minRect,不对原图进行变换
时间: 2024-03-29 22:40:02 浏览: 111
python+OpenCV实现全景图像拼接和图像黑边处理
3星 · 编辑精心推荐
好的,您可以使用 OpenCV 中的 cv::minAreaRect() 函数来获取一个包含轮廓的最小矩形,也就是 cv::RotatedRect 对象。这个函数的输入参数是一个二值化的图像或者是一个轮廓向量,返回的就是最小矩形。具体实现可以参考以下代码:
```c++
cv::Mat src; // 原图
cv::Mat binary; // 二值化后的图像
std::vector<std::vector<cv::Point>> contours; // 轮廓向量
cv::findContours(binary, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE); // 查找轮廓
// 获取最小矩形
cv::RotatedRect minRect = cv::minAreaRect(contours[0]); // 假设只有一个轮廓
// 在原图中绘制最小矩形
cv::Point2f vertices[4];
minRect.points(vertices);
for (int i = 0; i < 4; ++i)
cv::line(src, vertices[i], vertices[(i + 1) % 4], cv::Scalar(0, 255, 0), 2);
```
这样就可以在原图中绘制出最小矩形了,而不需要对原图进行任何变换。
阅读全文