c++ opencv求mask区域边界矩形
时间: 2023-09-11 21:08:16 浏览: 241
openCV提取图像中的矩形区域
可以使用OpenCV中的轮廓函数来获取mask区域的边界矩形。下面是一个示例代码:
```c++
Mat mask = imread("mask.png", IMREAD_GRAYSCALE);
vector<vector<Point>> contours;
findContours(mask, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
Rect boundingRect = boundingRect(contours[0]);
rectangle(mask, boundingRect, Scalar(255), 2);
imshow("Mask with bounding rectangle", mask);
waitKey(0);
```
首先,使用imread函数读取mask图像,并将其转换为灰度图像。然后,使用findContours函数查找mask图像中的轮廓。我们使用RETR_EXTERNAL和CHAIN_APPROX_SIMPLE参数来获得最外层轮廓和轮廓的简化版本。接下来,使用boundingRect函数计算轮廓的边界矩形。最后,使用rectangle函数在mask图像上绘制矩形,并显示结果。
请注意,如果mask图像中有多个轮廓,则上述代码将只绘制最外层轮廓的边界矩形。如果您需要获取所有轮廓的边界矩形,则需要在一个循环中使用boundingRect函数来计算每个轮廓的矩形。
阅读全文