opencv 找到掩码图的外接正矩形
时间: 2023-08-02 10:05:22 浏览: 183
使用 OpenCV 找到掩码图的外接正矩形的步骤如下:
1. 读入掩码图并转换为灰度图像;
2. 对灰度图像进行二值化处理,将所有非零像素设置为 255;
3. 使用 findContours 函数寻找二值化后的图像中的所有轮廓;
4. 遍历所有轮廓,使用 boundingRect 函数计算每个轮廓的外接矩形;
5. 对所有外接矩形的坐标进行比较,找到最小的矩形;
6. 最终得到的最小外接矩形即为以左上角坐标和宽度、高度确定的矩形。
下面是 Python 代码示例:
```python
import cv2
# 读入掩码图并转换为灰度图像
mask = cv2.imread('mask.png', cv2.IMREAD_GRAYSCALE)
# 对灰度图像进行二值化处理
ret, thresh = cv2.threshold(mask, 1, 255, cv2.THRESH_BINARY)
# 使用 findContours 函数寻找二值化后的图像中的所有轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 遍历所有轮廓,使用 boundingRect 函数计算每个轮廓的外接矩形
rects = []
for contour in contours:
rect = cv2.boundingRect(contour)
rects.append(rect)
# 对所有外接矩形的坐标进行比较,找到最小的矩形
x, y, w, h = min(rects, key=lambda rect: rect[2] * rect[3])
# 最终得到的最小外接矩形即为以左上角坐标和宽度、高度确定的矩形
min_rect = (x, y, w, h)
print(min_rect)
```
希望这个答案能够帮助到您。
阅读全文