【问题标题】:Is it possible to make dynamic template matching with cv2.templateMatch()是否可以使用 cv2.templateMatch() 进行动态模板匹配
【发布时间】:2018-07-29 15:52:29
【问题描述】:

我有一个文档(建筑物的平面图),其中包含一些我需要检测的对象以及其中的文本。基本上它只是一个扁六边形,里面有文字。我的任务是在给定的计划中找到所有这样的六边形。我决定切割一个六边形并将其设置为模板并使用 cv2.templateMatch。它能够正确检测到一些六边形,但不是全部。我想,问题出在里面的文字,因为每个六边形都不一样,我无法检测到所有存在的六边形。

是否有可能以某种方式使模板动态化或只检测周围的边框,而忽略里面的文本。

UPD: 我需要定位的对象看起来是这样的:

  __________
 <|ABC12345|>
  ----------

【问题讨论】:

  • 您能提供一个示例输入图像吗?
  • @DanMašek 抱歉,但它在 NDA 下。你能想象建筑物楼层的平面图(例如火灾应急计划),上面有类似的对象:这个盒子我称之为六边形,我想你明白了
  • opencvs 模板匹配不允许使用掩码,但是过程很简单,你也许可以自己写(可能更慢/不太优化)。另一个类似的 alprach 是倒角匹配。
  • 如果字体颜色与六边形不同,您可以尝试在模式匹配之前过滤掉文本。

标签: python opencv computer-vision object-detection template-matching


【解决方案1】:

我认为模板匹配不会给您带来好的结果,因为这是一个对象检测问题。

对我来说,它与车牌检测/识别非常相似。

最稳健的方法是使用深度学习来解决这个问题。

可能的解决方案的粗略总结可能是: 1.根据字体样式及其格式(例如,3个字母和5个数字)生成训练和测试数据 2. 为生成的图像添加噪点和不同的背景 3.找到合适的网络,开始训练……

祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多