如何比较两个边缘图像(在 OpenCV 中)?

2024-03-13

在我的项目中,我需要与图像进行比较。一张图像显示渲染模型,另一张图像是照片,其中显示模型中表示的真实对象。我到底想要什么:

  • 该算法必须比较两个图像并返回一个描述相似度的数字。假设数字越低,图像就越吻合。
  • 两个图像都表示为二进制图像,仅包含真实渲染图像/照片的轮廓/边缘。
  • 照片中的物体比渲染图像多得多。所以我只想检查渲染对象的视点是否与照片中真实对象的视点几乎相同。 (示例:对汽车进行建模,使其接近真实的汽车。我从特殊的位置和方向拍摄真实汽车的照片。现在我想检查虚拟相机的位置和方向是否看着渲染汽车与我现实生活中相机的位置和方向几乎相同)。解决方案只是将渲染图像的白色像素与照片的像素(作为边缘图像)进行比较。其他像素并不有趣。
  • 虚拟相机的方向和位置与真实相机的方向和位置吻合得越好,图像比较的返回值应该越小。

我尝试计算两个图像的欧几里德距离,但只有当像素彼此完全吻合时,结果才是好的。现在我正在寻找替代方案。

到目前为止,我考虑使用归一化互相关,但我真的不知道它是否适合我的任务。

问题是,归一化互相关是否值得一试,或者是否有更好的方法来解决我的问题!

该算法应该尽可能快,因为我比较了很多图像。

多谢


感谢您的建议。我有点困惑,因为归一化互相关和豪斯多夫距离似乎有利于在大图片中找到小模式。

问题是:这两种算法是否也适合比较两张相同大小的图片?

这是必须比较的 2 个图像的示例。目前我每秒比较大约 120 张图片对。

太糟糕了,我无法作为新用户发布图像。所以这是直接链接:http://s14.directupload.net/file/d/2674/t8qzbq9i_png.htm http://s14.directupload.net/file/d/2674/t8qzbq9i_png.htm


以豪斯多夫距离为起点进行实验怎么样?总体思路及c实现here http://www.cs.cornell.edu/~dph/hausdorff/hausdorff1.html。文章在这里:

使用豪斯多夫距离比较图像 http://www.cs.cornell.edu/~dph/papers/HKR-TPAMI-93.pdf,DP Huttenlocher - 1993。

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

如何比较两个边缘图像(在 OpenCV 中)? 的相关文章

  • MATLAB:图像角坐标和引用元胞数组

    我在比较不同元胞数组中的元素时遇到一些问题 这个问题的背景是我正在使用bwboundariesMATLAB 中的函数可追踪图像的轮廓 该图像是结构横截面 我试图找出整个部分是否具有连续性 即 只有一个轮廓由bwboundaries命令 完成
  • HoughLinesP后如何合并线?

    My task is to find coordinates of lines startX startY endX endY and rectangles 4 lines Here is input file 我使用下一个代码 img c
  • Blob 的簇生长

    考虑以下来自 Mathworks 的图像 我已经用标签标记了斑点 L num bwlabel I 如何迭代连接所有斑点 即从一个斑点开始 找到离它最近的一个 考虑最左边的两个斑点 可以从一个斑点的许多点绘制许多条线来连接到另一个斑点blob
  • java.lang.UnsatisfiedLinkError:java.library.path中没有opencv_java2411

    我正在尝试将 opencv 添加到我的 Spring Boot Maven 项目中 为了使用 opencv 库 我必须在 java library path 中提供本机库 我已将以下命令添加到 Eclipse VM 参数中 Djava li
  • 为什么这个基本的 imagejpeg() resizer 返回黑色图像?

    EDIT 感谢您的所有回答 特别是 Mailerdaimon 他注意到我没有在imagecopyresampled功能 我不再得到黑色图像 但我仍然得到一些黑色部分 所以我认为我的比例公式应该更新 如果我上传横向图像 新图像的高度小于 17
  • PHP清晰度卷积矩阵

    我正在使用一个卷积矩阵 http www php net manual en function imageconvolution php为了锐度PHP GD我想改变清晰度 level 我会去哪里做出改变如果我想做到的话或多或少尖锐 imag
  • Django:ImageField 需要文件路径还是实际的图像对象?

    Running Windows 7 Python 3 3 Django 1 6 我对如何将图像存储为 Django 数据库中表的一部分感到困惑 有一个领域叫做ImageField 这是Docs https docs djangoprojec
  • 使用 Java 编辑 jpeg EXIF 数据

    我想编辑 jpg 文件的属性 例如 评论 标题 拍摄日期 相机制造商等 我找到了读取这些数据的库 但我需要一个free带有示例的库edit them 我知道 apache 的成像 sanselan 但我无法用它编辑数据 如果您以前自己使用过
  • 将图像加载到现有 Mat 中

    有没有办法将图像加载到现有的 Mat 中 如果没有 有没有办法控制 OpenCV 在调用 cv imread 时分配内存的位置 我只是为您的类创建一个构造函数 该构造函数接受 imread 的输入参数并将图像直接加载 并分配 到您的类中 所
  • 将 Null 与 MySQL 触发器中的另一个值进行比较

    所以这是我的问题 我在更新表行时比较新值和旧值 但新值或旧值有时会为空 所以下面的代码不起作用 我可以解决这个问题吗 谢谢 BEFORE UPDATE ON mytable FOR EACH ROW BEGIN IF OLD assigne
  • 相机校准:如何正确进行

    我正在尝试使用棋盘格通过众所周知的张氏方法进行校准 然后进行捆绑调整 该方法在 Matlab 和 OpenCV 中都可用 有很多经验指南 但从我个人的经验来看 准确性是相当随机的 它有时可能非常好 但有时也可能非常糟糕 实际上 只需将棋盘放
  • 如何取消 jquery.load()?

    当 load 在 5 秒内没有返回时 我想取消 load 操作 如果是这样 我会显示一条错误消息 例如 抱歉 没有加载图片 我所拥有的是 超时处理 jQuery fn idle function time postFunction var
  • 图像预加载不适用于 FireFox 中的图像

    我正在动态切换背景图像 当然 它们需要预加载才能及时显示 我正在预加载它们 我能够在图像加载时在 FireBug 中进行跟踪 当背景图像切换时 我看到图像在 FireBug 中再次下载 这是我的网址 http www morganpacka
  • 在 Java 中有效地对图像进行颜色循环

    我正在编写一个曼德尔布罗分形查看器 我想以智能的方式实现颜色循环 给定一个图像 我想修改它的 IndexColorModel 据我所知 没有办法修改 IndexColorModel 也没有办法为图像提供新的 IndexColorModel
  • 如何更改 UIActivityIndi​​catorView 以设置自定义图像?

    好吧 我正在寻找一种方法来更改我的微调器图像并使用自定义图像 有什么建议吗 我创建了一个UIActivityIndi catorView 的子类 https github com cncool CDActivityIndicatorView
  • 将base64字符串转换为图像c#时出错

    我想在我的网页上显示图像 并单击应该下载的链接按钮 存储的图像文件以二进制格式存储在db中 将 base64 字符串转换为图像时显示错误 详细信息如下 帮助我找到合适的解决方案 谢谢 Error Code protected void Pa
  • Python Flask 不更新图像[重复]

    这个问题在这里已经有答案了 这里有一些关于图像的 Flask 问题 但没有一个能解决我的问题 我有一个应用程序可以创建图像 保存它 然后显示它 一次 它应该多次执行此操作 每次更改图像时 它应该加载新图像 它不是 它只显示与其显示的文件名关
  • C++ OpenCV 3.4 / FFMPEG 3.4.1 VideoWriter 和 MP4 输出文件格式

    我正在运行 Linux 内核 4 9 35 ti r44 的 ARM BeagleBone X 15 Debian 机器 在我的 C Qt 5 应用程序中 我想将 cv Mat 帧保存为 MP4 格式视频 我安装了 libx264 并从头开
  • 如何选择图像插值方法? (Emgu/OpenCV)

    Emgu OpenCV的 net包装器 提供的图像调整大小功能可以使用四种插值方法中的任意一种 http www emgu com wiki files 1 4 0 0 html 596dd03d 301e d3c6 4c53 c42855
  • 静态 OpenCV 库中未定义的引用

    我有一个使用 OpenCV 3 1 的 C 项目 并且使用共享库可以正常工作 但现在我想使用静态库 位于项目目录中的文件夹中 来编译它 因为我希望能够在未安装 OpenCV 的情况下导出它 如果需要还可以编辑和重新编译 这次我重新编译了 O

随机推荐

  • 如何验证使用 jwt.io 上的 Keycloak 身份验证提供程序创建的 HS256 签名 JWT 令牌

    我正在尝试验证使用本地运行生成的 HS256 JWT 令牌KeyCloak https www keycloak org 身份验证提供程序开启https jwt io https jwt io KeyCloack 实例正在我的本地计算机上的
  • MySQL 中查询/查看表的大小限制是多少?

    我正在使用 MySQL 目前数据库中有 3 个表 我创建了一个包含 3 个表之间关系的视图表 视图表应该有大约 200 000 行数据 因为我也在 Access 中测试了相同的查询并且它工作正常 但不幸的是我不允许使用 Access 当我在
  • [Vue 警告]:缺少必需的道具:“productInfo”

    我对 Vue 相当陌生 所以这可能是显而易见的 但我一定错过了一些东西 我不断收到错误 Vue warn Missing required prop productInfo 在我的 vue 文件中 它说它在 ProductSlider vu
  • 在 django-tastypie 中,可以在模式中显示选择吗?

    我想弄清楚我是否可以代表模型字段choices给使用 tastypie API 的客户 我有一个 django 1 4 1 应用程序 我正在为其实现 django tastypie 0 9 11 API 我有一个类似于以下内容的模型和模型资
  • 将Python脚本添加到C++项目中

    我如何将用 python 编写的脚本添加到 c 项目中 谢谢 编辑 基本上 脚本所做的只是通过电子邮件发送一些数据 我想将数据和电子邮件地址传递给用 python 编写的函数 希望这能说明问题 你可以看看Boost Python http
  • 当我在模型中加载数据库时,如何在 Codeigniter Profiler 中显示数据库查询?

    我的 Codeigniter 系统使用多个数据库 我不需要每个页面上的每个数据库 因此我在需要的模型中加载每个连接 然后在每个控制器中加载所需的模型 当我以这种方式加载内容时 探查器不会显示来自这些数据库的任何查询 这是我在模型中加载数据库
  • 可变参数模板包扩展

    In Andrei 在 GoingNative 2012 上的演讲 http channel9 msdn com Events GoingNative GoingNative 2012 Variadic Templates are Funa
  • 如何使用 gtk 信号将多个变量作为数据传递

    我有一个小程序 其中 gtk 信号回调函数需要 2 或 3 个变量 我不想创建这些全局变量 该项目的整个目标是整洁 并且我不想创建整个结构 以便我可以将小部件和编译的正则表达式发送到函数 据我所见g signal connect只允许单个数
  • 我无法在 WPF 中为自定义属性设置动画

    我已经为此苦苦挣扎了几个小时 但我找不到我做错了什么 请帮我找出我的错误 我创建了一个具有一个自定义依赖属性的用户控件 并且我想为该属性设置动画 这是我的课程 public partial class UserControl1 UserCo
  • 无法执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile)

    我知道这是一个重复的问题 但其他主题的答案对我没有帮助 我正在使用 Eclipse Photon Java 版本 10 我已在 eclipse 和 pom xml 文件中将 jdk jre 版本设置为 10 我已经更改了 eclipse i
  • Python-查找文本文件中单词列表的词频

    我正在尝试加快我的项目来计算词频 我有 360 多个文本文件 我需要获取单词总数以及另一个单词列表中每个单词出现的次数 我知道如何使用单个文本文件来做到这一点 gt gt gt import nltk gt gt gt import os
  • 同时可靠地使用核心数据

    我正在构建我的第一个 iOS 应用程序 理论上它应该非常简单 但我很难让它足够安全 让我有信心将其提交到 App Store 简而言之 主屏幕有一个表视图 在选择一行后 它会转到另一个表视图 该表视图以主从方式显示与所选行相关的信息 底层数
  • Angular - 拼接函数总是删除最后一个元素

    我有一个对象数组 我想在单击删除键时删除某些对象 但是 无论我创建了多少行 它总是从行数组中删除最后一项 即使我明确地放入这样的行 scope rows splice 1 1 它仍然会删除最后一个元素 而不是第二个元素 JS angular
  • 无法通过数字键盘使用小数(Android 上的 Xamarin Forms)

    我已经尝试了几个论坛上给出的几种解决方案 也在 Xamarin 论坛上提问 但都没有结果 我想在 Xamarin Forms 中创建一个条目 用户可以在其中添加十进制数 问题是我的数字键盘禁用了逗号 我可以使用自定义渲染器添加点 但由于我住
  • 如何在IIS中部署Angular Universal?

    我在 IIS 中部署角度通用应用程序时遇到问题 在角度通用中 创建了两个 dist 文件夹 一个是用于客户端的 dist 另一个是 dist 服务器 当我尝试托管时 我给出了 dist 文件夹的路径 站点正在运行 但页面未从服务器渲染 我遇
  • HTMLInputElement 没有方法“parent”

    我的页面上有两个非常相似的表单 我在 jquery 中进行简单的验证 以检查每个字段是否都有值 然后再使用 ajax 将数据发送到使用该数据的 php 处理程序 由于表单之间的相似性 我无法知道提交的是哪个表单 所以我想尝试通过表单容器 d
  • 将 Google-Play-Services 添加到库项目

    我正在开发一个地图库 并且正在使用 Google Play Services 到目前为止 一切都很好 问题是这样的 我将 Google Play Services 库项目包含在我的地图库中 使用 属性 gt android gt 添加库 使
  • 我是否应该始终在 Dispose 方法中断开事件处理程序的连接?

    我使用 C 工作 我的工作场所有一些代码标准 其中之一是我们连接的每个事件处理程序 例如KeyDown 必须在断开Dispose方法 这有什么好的理由吗 除非您期望事件的发布者比订阅者活得更久 否则没有理由删除事件处理程序 不是 这是民间传
  • 即使 Access-Control-Allow-Origin 设置为 *,为什么仍会发送多个 OPTIONS 请求?

    我已经构建了一个 API api example com 并希望可以从 www example com 访问它我还希望可以从其他域访问它 为此 我添加了 Access Control Allow Origin 但是当我打开 www exam
  • 如何比较两个边缘图像(在 OpenCV 中)?

    在我的项目中 我需要与图像进行比较 一张图像显示渲染模型 另一张图像是照片 其中显示模型中表示的真实对象 我到底想要什么 该算法必须比较两个图像并返回一个描述相似度的数字 假设数字越低 图像就越吻合 两个图像都表示为二进制图像 仅包含真实渲