使用Opencv提取图像的公共部分

2023-12-01

我正在编写一个程序来查找图像之间的差异。目前,我正在使用 AKAZE 寻找特征,因此我知道了这两张图像的共同点。问题是这两张图片只有一部分是共同的。如何从两幅图像中提取共同部分?为了更好的解释:我需要从第一张图像中提取公共部分,然后从第二张图像中提取公共部分,所以我可以这样做absdiff为了寻找差异。 我正在用 c++ 编程

谢谢大家!


你应该warp将第一张图像复制到第二张图像上。您可以使用findHomography and perspectiveTransform由关键点的对应关系给出的函数。您可以找到您需要的大部分代码here.

Update


顺便说一句,我今天必须做基本相同的事情。它在灰度图像上进行了测试(Mat1b),但只需要进行较小的更改即可应用于 RGB 图像(Mat3b)。 这里是代码的相关部分:

Mat1b A = imread("...");
Mat1b B = imread("...");

vector<Point2f> ptsA; 
vector<Point2f> ptsB;

// Fill ptsA, ptsB with the points given by the match of your descriptors.

Mat H = findHomography(ptsA, ptsB, CV_RANSAC); // With ransac is more robust to outliers

Mat1b warpedA;
warpPerspective(A, warpedA, H, B.size());

// Now compute diff
Mat1b res;
absdiff(warpedA, B, res);

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

使用Opencv提取图像的公共部分 的相关文章

随机推荐

  • 检查哈希表集合中是否存在键/值对

    我有急速的 Hashtable hash new Hashtable hash Add a 1 hash Add b 2 hash Add c 3 hash Add c 4 现在我需要检查 Key c 和 value 3 组合是否已存在于哈
  • 如何实现我创建的需要从文件读入的函数?

    我有这个功能 errorLim 0 3 def getQMulti ppm errorLim x ppm peakAvg errorLim q getQ x x0 2 0 q0 getQ x0 QMulti 1 0 q math abs q
  • Microsoft.AspNetCore.Identity.UserManager:警告:用户验证失败:InvalidUserName;InvalidEmail

    我需要创建一个具有用户名 名字 姓氏和电子邮件字段的用户 我正在使用 Mysql 数据库和 Pomelo 包 迁移和数据库更新工作正常 此代码会导致失败 public async Task
  • Java Math.pow() 舍入误差

    我遇到了 我怀疑是 舍入错误的问题 我有一根绳子 0 686357E 01 我正在尝试将其转换为双精度 我已经能够使用将其拆分Pattern split 函数 我正在捕获基数和指数值 然而 一旦我尝试将它们适当相乘 我得到的结果是 0 06
  • 滚动时,推送列中的 Bootstrap Affix 菜单与 Safari 中的主要内容重叠

    这可能是 Bootstrap 本身的一个错误 但我仍然有兴趣看看是否有人可以提出修复或至少提供一些帮助 要直接跳到问题所在 请在 Safari 中打开此 jsfiddle 并开始向下滚动页面 http jsfiddle net davere
  • PreferredStatusBarStyle var 在 iOS12 中不起作用?

    Adding application statusBarStyle lightContent 我的 AppDelegate didFinishLaunchingWithOptions 方法未添加 override var preferred
  • 从我的 VB.NET 2008 项目访问 MySQL 数据库

    我用VB NET开发了一个项目 在这个项目中 我想使用驻留在我的 WEB 服务器中的 MySQL 中的数据 我可以与本地主机的 MySQL 服务器通信 但无法与 WEB 服务器通信 在我的 CPanel 中 我添加了主机远程数据库访问 但我
  • Delphi Xpath XML 查询

    我正在尝试找到的值在以下 XML 文件中使用XPath query
  • 查找具有所有公共中介的节点

    我正在创建一个我们匹配的系统orders to staff 从概念上讲 一个order是对人做一些工作的请求 并且staff是一个能够完成这项工作的人 一个order可以有一个或多个requirements 即对谁可以做这项工作的限制 以及
  • Ghostscript 灰度转换仍然包含颜色?

    如果 pdf 确实包含颜色 我需要将其转换为灰度 为此 我找到了一个脚本 可以确定 pdf 是否已经处于灰度状态 convert source pdf colorspace RGB unique colors txt 2 gt dev nu
  • 将 $_POST 与文本区域一起使用时出现问题

    我在网站上有一个简单的联系表单 有 2 个文本字段 1 个文本区域和 1 个隐藏字段 由于某种原因 除文本区域之外的所有字段都 POST 到 PHP 脚本 我以前已经这样做过一千次了 但从来没有遇到过这个问题 这是我的 HTML
  • 在没有 Office 365 订阅的情况下使用 Azure 多租户应用程序来访问用户日历信息

    我们编写了一个服务应用程序 该应用程序从组织 租户 的多个日历中读取 Office 365 日历信息 并对条目进行一些分析 为此 我们使用 Office 365 REST API 我们有多个客户组织 租户 需要此功能 因此我已按照以下步骤操
  • 在大型数据库中如何优化数据库这个查询?

    Query SELECT id FROM user tmp WHERE code 9s5xs1sy AND go NOT REGEXP http www xxxx example com aflam http xx example com
  • 使用特定字符在 Python 中拆分字符串

    我正在尝试按特定字符分割输入的文档 我需要在 和 处将它们分开 但我很难弄清楚这一点 def main for x in docread words x split for word in words doclist append word
  • 如何使用GAE访问GCE上的mongodb

    我已经在 GAE 上部署了我的演示应用程序 并且与 mLab 一起正常工作 但是当我尝试在 GCE MongoDB Google Click to Deploy 上部署 mongodb 时 部署成功 但我不知道如何设置 URI我的应用程序在
  • 找不到我的实体框架数据库

    我对代码优先实体框架数据库有点困惑 我创建了一个新的 DbContext 和类 将其存储在该上下文中 如下所示 namespace MyProject Subproject Something public class MyItem pub
  • Android sqlite / BLOB 性能问题

    自从我将数据从 ArrayList 移动到 Android 上的 sqlite 数据库后 我的性能出现了严重下降 没有打开的游标可能会导致这种情况 因此我怀疑问题出在我存储在 BLOB 字段中的图像 该应用程序创建Cards有一个字段卡位图
  • 如何让 CMake 自动检测 CUDA_ARCHITECTURES 的值?

    较新版本的 CMake 3 18 及更高版本 了解 CUDA 代码编译目标的 CUDA 架构的选择 目标有一个CUDA ARCHITECTURES属性 设置后会生成适当的 gencode arch whatever code whateve
  • Java 安装程序 - 需要帮助[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 首先 您好 感谢您花时间帮
  • 使用Opencv提取图像的公共部分

    我正在编写一个程序来查找图像之间的差异 目前 我正在使用 AKAZE 寻找特征 因此我知道了这两张图像的共同点 问题是这两张图片只有一部分是共同的 如何从两幅图像中提取共同部分 为了更好的解释 我需要从第一张图像中提取公共部分 然后从第二张