You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用OpenCV判断图像中是否包含网格(表格)?

如何用OpenCV判断图像中是否存在网格/表格?

我是编程和OpenCV新手,想要编写一个Python脚本,实现一个返回布尔值的函数,判断给定图像是否包含网格(表格),无需获取网格位置,仅需知晓是否存在。希望脚本能适配绝大多数图像类型,但我不清楚具体实现步骤。我尝试过查找表格轮廓并绘制,但不知道如何判断这些轮廓是否为真实表格,以下是尝试的代码、示例图及输出图。

尝试的代码

import cv2

image = cv2.imread("img.png")

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

thresh = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)

contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

count = 0

for cnt in contours:
    perimeter = cv2.arcLength(cnt, True)
    approx = cv2.approxPolyDP(cnt, 0.02 * perimeter, True)
    if len(approx) == 4:
        cv2.drawContours(image, [approx], -1, (0, 255, 0), 1)
        count = count + 1

cv2.imwrite('output.png', image)
print(count)
cv2.waitKey(0)

示例图与输出图

输入示例图

输入示例图

处理后输出图

处理后输出图

内容的提问来源于stack exchange,提问作者Steppo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 08:07:12