gpt4 book ai didi

c++ - OpenCV:忽略类似文本的轮廓

转载 作者:太空宇宙 更新时间:2023-11-03 22:24:43 27 4
gpt4 key购买 nike

背景

我想检测包含 2D 几何形状的图像中的所有轮廓,但去除任何看起来像文本的东西。

示例输入: enter image description here

我尝试通过 Tesseract 检测文本区域并随后删除这些文本区域。对于 OCR 识别良好的某些图像,此方法工作正常,因此文本区域的识别率相当高,然后可以删除已识别文本的轮廓。但对于大多数图像,文本识别不佳,因此我无法从图像中删除不相关的文本轮廓。

因此我的问题是:如何区分类似文本的轮廓和二维“几何”轮廓?

最佳答案

如果您不关心文本并且只想摆脱它,那么您可以通过将 RETR_EXTERNAL 作为模式参数传递给 findCountours() 来检测外部轮廓 功能。这将为您提供最外层的轮廓并忽略几何形状内部包含的任何内容。

或者如果您想要更多控制,您可以将模式参数作为 RETR_TREE 传递,然后遍历树,仅保留顶级轮廓并忽略层次结构中低于该级别的任何内容。这样你就会得到一切,你可以稍后决定你想保留什么和你想忽略什么。

阅读this page的 OpenCV 文档,了解有关 findCountours() 如何表示层次结构的信息(该页面来自 python 教程,但它足够通用,可以跟进)。

当然,只有当图像看起来始终与您在问题中给出的示例相似时,这才会起作用 - 即文本始终位于几何形状内。如果您在形状之外有文本,那么也许您可以查看轮廓(边界矩形)的大小并忽略任何低于特定阈值的内容(假设文本轮廓将比您的几何形状小得多)。

关于c++ - OpenCV:忽略类似文本的轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43450322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com