如何用OpenCV高效提取Zoom图像内各矩形框的四角坐标
矩形外框坐标提取方案
之前用全图Canny+形态学操作出现内部内容误识别,核心问题是检测逻辑没有优先过滤非框线元素,直接按以下流程实现即可,识别效率和准确率都能满足20个矩形框的提取需求:
核心前置过滤:单独分离框线像素
Zoom标注的矩形框有固定描边颜色,先转HSV颜色空间做颜色掩码,只保留框线对应的像素,直接把框内的文字、截图内容全部排除,从根源避免内部内容干扰。如果是黑色描边框,换成自适应阈值提取固定粗细的深色线条即可。import cv2 import numpy as np # 读入截图 img = cv2.imread("zoom_capture.png") hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # 以下为红色描边框的HSV阈值,其他颜色调整对应范围即可 lower_red1 = np.array([0, 120, 70]) upper_red1 = np.array([10, 255, 255]) lower_red2 = np.array([170, 120, 70]) upper_red2 = np.array([180, 255, 255]) mask = cv2.inRange(hsv, lower_red1, upper_red1) + cv2.inRange(hsv, lower_red2, upper_red2)轮廓检测只抓最外层闭合框
不要用腐蚀操作,换成3*3卷积核做2次闭运算,把矩形框断开的描边补成连续闭合环;检测轮廓时必须用cv2.RETR_EXTERNAL模式,该模式只会返回最外层轮廓,自动跳过所有轮廓内部的嵌套元素,完全不会识别框内内容。kernel = np.ones((3,3), np.uint8) closed_mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel, iterations=2) # 只检测外轮廓,压缩冗余轮廓点 contours, _ = cv2.findContours(closed_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)轮廓筛选+四角坐标计算
遍历所有外轮廓,用多边形逼近筛选顶点数为4、面积符合预期矩形大小的轮廓,对符合要求的轮廓点做排序,即可得到每个矩形的四个角坐标。rect_result = [] for cnt in contours: perimeter = cv2.arcLength(cnt, True) approx = cv2.approxPolyDP(cnt, 0.02 * perimeter, True) # 筛选条件:4个顶点、面积在合理区间(按截图分辨率调整阈值即可) if len(approx) == 4 and 1000 < cv2.contourArea(approx) < 100000: points = approx.reshape(4, 2) point_sum = points.sum(axis=1) point_diff = np.diff(points, axis=1) # 坐标规则:左上x+y最小,右下x+y最大,右上x-y最小,左下y-x最小 top_left = points[np.argmin(point_sum)] bottom_right = points[np.argmax(point_sum)] top_right = points[np.argmin(point_diff)] bottom_left = points[np.argmax(point_diff)] rect_result.append({ "top_left": tuple(map(int, top_left)), "top_right": tuple(map(int, top_right)), "bottom_left": tuple(map(int, bottom_left)), "bottom_right": tuple(map(int, bottom_right)) }) print(f"共检测到符合要求的矩形数量:{len(rect_result)}")参数校准逻辑
如果最终检测到的矩形数量不是20,只需要微调两个参数:一是颜色掩码的HSV阈值,确保所有矩形框线都被完整提取;二是轮廓面积的上下限,过滤掉过小的噪点、过大的页面边缘即可。
不要对全图直接做Canny边缘检测,全图边缘会把所有文字、内部线条全部识别为有效边缘,后续过滤成本极高。先单独分离框线+外轮廓检测的方案,处理速度比全图边缘检测快3倍以上,基本不会出现误识别。
内容的提问来源于stack exchange,提问作者user1042911
相关产品推荐
相关产品推荐

