首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用opencv自动调整模板匹配阈值?

如何用opencv自动调整模板匹配阈值?
EN

Stack Overflow用户
提问于 2020-01-26 21:51:47
回答 2查看 5.1K关注 0票数 4

所以我使用opencv来做模板匹配,如下所示。我经常需要修改视觉相似性#THRESHOLD,因为它有时无法发现匹配,或者会返回太多的匹配。这是一个尝试和错误,直到它与文档中的一个位置中的一个元素完全匹配。我想知道是否有什么方法可以让这件事自动化。

image.png文件是pdf文档的图片。template.png文件是段落的图片。我的目标是发现pdf文档中的所有段落,我想知道什么神经网络在这里是有用的。

代码语言:javascript
运行
复制
import cv2
import numpy as np


img = cv2.imread("image.png");
gimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
template = cv2.imread("template.png", cv2.IMREAD_GRAYSCALE);
w, h = template.shape[::-1]


result = cv2.matchTemplate(gimg, template, cv2.TM_CCOEFF_NORMED)

loc = np.where(result >= 0.36) #THRESHOLD
print(loc)

for pt in zip(*loc[::-1]):
        cv2.rectangle(img, pt, (pt[0] + w, pt[1] + h), (0,255,0), 3)

cv2.imwrite("output.png", img)

例如,它将搜索从01.0的每个0值,并返回一个阈值,该阈值返回图像中的单个矩形匹配(在上面绘制绿色框)。

然而,我不禁觉得这是非常令人兴奋的,或者有更明智的方法来找出阈值是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-06 19:44:31

由于有很多评论,几乎没有任何回应,我将总结答案,供未来的读者。

首先,您的问题几乎与 如何为Python中不一致的文本结构检测文本文档图像中的段落完全相同。此外,这个线程似乎解决了您正在处理的问题:从图像中检测和裁剪文本块(段落)的简单方法?

第二,检测PDF中的段落不应该使用模板匹配的,而是使用以下方法之一:

  1. 使用canny边缘检测结合扩张和F1评分优化。,这通常用于fmw42建议的OCR。
  2. 或者,您可以使用行程宽度变换(SWT)识别文本,然后将文本分组为行和最后块,即段落。对于OCR,这些块可以传递给Tesseract (正如fmw42所建议的)。

任何OCR任务的关键是尽可能简化文本检测问题,通过根据需要修改图像来消除图像的破坏性特征。关于预先处理的图像的信息越多,越好:改变颜色,二值化,阈值,膨胀,应用过滤器等。

回答您的问题关于在模板匹配中找到最佳匹配的问题:签出关于模板匹配的答案。本质上,这取决于使用minMaxLoc找到最大相关值。以下摘自纳坦西的答案:

# Threshold resized image and apply template matching thresh = cv2.threshold(resized, 0, 255, cv2.THRESH\_BINARY\_INV + cv2.THRESH\_OTSU)[1] detected = cv2.matchTemplate(thresh, template, cv2.TM\_CCOEFF) (\_, max\_val, \_, max\_loc) = cv2.minMaxLoc(detected) ```

此外,可以在纳坦西在这条线上的回答中找到从图像中提取文本块的全面指南(不使用模板匹配)。

票数 2
EN

Stack Overflow用户

发布于 2020-02-06 17:09:08

我就会改变

代码语言:javascript
运行
复制
loc = np.where(result == np.max(result))

这给了我最好的匹配位置,然后我只能选择一个,如果我想.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59923076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档