python - 使用 OpenCV 进行图像分割 - 将整个图像视为一个片段
问题描述
我正在编写从图像(在此特定场景中为文档)中提取文本的代码。在此之前,我正在运行通常的二值化和分割图像处理任务,以便确定在图像中我可以找到文本位的确切位置。
这一切都相对完美,除了一个细节:在我从 OpenCV 获得的片段中,有一个片段是图像本身。因此,我从图像中提取文本两次:一次从每一位文本(即正确识别的段)中提取,一次从整个图像中提取(即错误识别的段)。
可悲的是,由于隐私问题,我无法发布图片,因为它是出生证明,但我的问题是:如何阻止图片本身被视为细分之一?
以下是我如何在二值化和膨胀之后获得片段:
contours, hierarchy = cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
这是我非常简单的文本提取循环:
text = ''
for contour in contours:
x, y, w, h = cv2.boundingRect(contour)
image_segment = image[y:y + h, x:x + w]
text += pytesseract.image_to_string(image_segment, lang='eng') + '\n'
我想出了一个解决方案,该解决方案涉及将轮廓的边界与图像的边界进行比较,如果它们相同,则忽略循环中的该段。但这似乎不是理想的解决方案。
解决方案
推荐阅读
- node.js - 关闭浏览器选项卡,由 node js 中的 opn 打开
- php - ORA-00903 PHP Codeigniter 中的无效表名
- javascript - 元素移动到轨道控制后枢轴点丢失
- scala - 如果加入后列不为空,则分组并收集集
- typo3 - ExtbaseObject 与同一对象的多次出现有关
- javascript - 来自 HTML 属性的事件处理程序内部的“this”
- c# - .net core 中 XML 配置文件中的自定义部分
- excel - 使用 VBA 使列标题成为文件名
- javascript - chrome 67 中的 getTime 不正确
- r - 基于顶点属性的R相关网络