将曲线图案与图像边缘匹配

2024-06-25

我有一个要搜索沿其边缘的曲线的目标图像和一个包含该曲线的模板图像。我需要实现的是在目标图像中找到模板图像中的曲线的最佳匹配,并根据分数来判断是否匹配。这还包括曲线的旋转和大小调整。目标图像可以是 Canny Edge 检测器的输出(如果这能让事情变得更容易的话)。

我正在考虑使用OpenCV(通过使用Python或Processing/Java,或者如果这些功能对所需功能的访问有限,则使用C)来使事情变得实用和高效,但是不知道我是否可以使用任何功能(或它们的组合)在 OpenCV 中可用于完成这项工作。我一直在阅读 OpenCV 文档,起初认为 Contours 可以完成这项工作,但是所有示例都显示闭合形状,而不是我需要将开放曲线与边缘的一部分匹配的情况。

那么有没有办法通过使用 OpenCV 或您建议的任何已知代码或算法来做到这一点?

下面是一些图片来说明问题:


我的第一个想法是广义霍夫变换 http://en.wikipedia.org/wiki/Generalised_Hough_transform。但是我不知道有什么好的实现方法。

我会首先在精明边缘图像上尝试 SIFT 或 SURF。它通常用于查找 2d 区域,而不是 1d 轮廓,但如果您采用轮廓周围的最小边界框并将其用作搜索模式,它应该可以工作。

OpenCV 有一个实现:Features2D + 单应性查找已知对象 http://opencv.itseez.com/doc/tutorials/features2d/feature_homography/feature_homography.html#feature-homography

一个问题可能是获得良好的边缘图像,后面的那些黑色形状可能会分散注意力。

另请参阅 Stackoverflow 的回答:图像处理:“可口可乐罐”识别的算法改进 https://stackoverflow.com/q/10168686/145999

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将曲线图案与图像边缘匹配 的相关文章

随机推荐

  • 使用 O(1) 辅助空间迭代二叉树

    是否可以在 O 1 辅助空间中迭代二叉树 不使用堆栈 队列等 或者这已被证明是不可能的 如果可以的话 怎样才能做到呢 编辑 我得到的关于如果有指向父节点的指针就可能实现这一点的响应很有趣 我不知道可以做到这一点 但取决于您如何看待它 这可以
  • Qt 要包含哪些标头?

    使用 Qt 使用 C 进行编程时 我应该包含哪些内容 仅包含 2 个 include
  • 如何在c中找到两个时间之间的差异?

    我的第一次是中午 12 10 20 第二次是同一天的上午 7 10 20 我怎样才能找到它们之间的差异 我的想法是将所有时间转换为秒 然后再次找到差异转换为时间 这是其他什么好的方法吗 你想要的difftime http linux die
  • 在较小的设备中更改 DataTables (jQuery+Bootstrap4) 的“pagingType”选项

    我正在与数据表 https datatables net它启用了分页并显示带有页码 1 2 3 4 5 10 的 下一个 上一个 按钮 我正在尝试使用以下方法将其更改为仅在较小设备 小于 768px 中的 下一个 上一个 分页类型 http
  • 休眠查询计数

    有什么方法可以统计 Hibernate 在事务或线程中内部完成的查询数量吗 我研究了 Hibernate 拦截器 但不清楚应该重写哪些 API 来增加计数器 我的目标是建立一个警报 当某个请求的查询计数超过某个阈值时通知我 以便我可以根据需
  • 在 Helidon 微配置文件应用程序中访问 Kubernetes 秘密

    请问我们是否有任何访问 kubernetes OKE 集群中机密的示例 例如 某些密码存储为秘密 并且该密码需要分配给属性文件中的某些参数 例如 oracle ucp jdbc PoolDataSource test ds password
  • 如何在AD中列出所有计算机以及它们上次登录的时间?

    我正在尝试检索计算机名称列表以及它们上次从 Active Directory 登录的日期 并将它们返回到数据表中 获取名称很容易 但是当我尝试添加 lastLogon 或 lastLogonTimestamp 如下所示 时 我获得的 las
  • 在 switch 语句中声明和初始化的变量

    为什么这个程序不输出20 include
  • 替换 R 中的缺失值

    我必须通过 ID 将缺失值替换为最大值 值 如何在 R 中做 ID Value 1 NA 5 15 8 16 6 8 7 65 8 NA 5 25 1 62 6 14 7 NA 9 11 8 12 9 36 1 26 4 13 我首先使用调
  • 如何以编程方式移动 Windows 任务栏?

    我想知道任何类型的 API 或解决方法 例如脚本或注册表 来将 Windows 任务栏移动 或调整大小 到另一个位置 包括另一个显示器 如果是双显示器 当然 我们可以使用鼠标来移动任务栏 但我想通过程序或某种自动化方式来移动它 我试图找到
  • 使用 WinSCP 以 Root 身份登录 Google Compute Engine 虚拟机实例时出现“收到过大的 SFTP 数据包”

    您好 我可以使用我自己的用户名使用 WinSCP 登录 GCE VM 但无法以 root 身份登录 这是根据 Google 的默认设置 可以更改 改成这样 第1步 登录SSH并Su Root sudo su root 第二步 修改root密
  • 如何将Android小部件中的字体更改为应用程序“assets”文件夹中用户定义的字体?

    我想更改我的小部件中的字体 以便它使用我的应用程序的 资产 文件夹中的特定字体 我通常在我的应用程序中执行此操作来更改字体 Typeface tf Typeface createFromAsset getAssets advertising
  • 自动杀死多处理池的进程和子进程

    我正在使用多处理模块进行并行处理 下面的代码片段在 X 位置搜索字符串文件名并返回找到该字符串的文件名 但在某些情况下 搜索过程需要很长时间 所以我试图杀死搜索过程 花费超过 300 秒 为此 我使用了 timeout 300 如下所示 这
  • 在 UWP 应用程序中制作向导的正确方法?

    我正在尝试为 UWP 应用程序实现启动向导 向导最好在一个不可调整大小且位于屏幕中央的新窗口中打开 我已经尝试过使用LaunchUriForResultsAsync https learn microsoft com en us uwp a
  • 列表框仅显示一项

    我有一个ListBox和一个带有字符串的类 每次用户单击应用程序中的添加按钮时 我都会创建该类的一个新实例并将其添加到绑定到的列表中ListBox 第一次单击 添加 按钮时 列表框显示第一项 但下次单击时不再显示两项 XAML 这是List
  • 如何计算iOS 11不同方向的尺寸?

    我根据具有水平滚动和自定义布局的 UICollectionView 的安全区域来计算 itemSize 但对于 iPhone X 来说 安全区域对于不同的方向有不同的大小 我的问题是如何计算 viewWillTransition 函数中横向
  • COM 错误?打开工作簿两次会导致引用损坏

    归功于fuglede https stackoverflow com users 5085211 fuglede为了引起我的注意 这是 COM 错误吗 我打开 Excel 工作簿 A 然后打开工作簿 B 这两个工作簿在单元格 A1 中都有一
  • Bootstrap 列中的文本未居中

    我在 Bootstrap 中构建了 1 10 1 列标题结构 现在我想将其居中 在 10 列中 但正如您通过页面中间的虚线看到的 不集中在正中间 为什么不 我怎样才能把它拿到那里 标题的高度取决于font size其中的文字 如何通过命令手
  • 将对象作为构造函数的参数传递并保存上下文

    TL DR 我想在创建类的新实例时将对象作为参数传递 ChildClass 当我传递参数时 我想保存上下文 以便 this应该引用创建此实例的对象 而不是引用的上下文 父类 js class ParentClass constructor
  • 将曲线图案与图像边缘匹配

    我有一个要搜索沿其边缘的曲线的目标图像和一个包含该曲线的模板图像 我需要实现的是在目标图像中找到模板图像中的曲线的最佳匹配 并根据分数来判断是否匹配 这还包括曲线的旋转和大小调整 目标图像可以是 Canny Edge 检测器的输出 如果这能