图像比较 - 旋转、对齐和缩放

2023-12-02

我有以下需求。有一些表格,即空白表格 - 例如调查中使用的表格。那些没有填充信息的,从现在开始我将称之为图像模板。除了图像模板之外,我还有很多图像,这些图像本质上都是充满信息的图像模板。例如,有一项调查,有两个空白需要填写 - 这些是图像模板。许多人用他们的个人信息填充了空白,这些就是图像。

图像模板被扫描成完美的形状。但许多扫描图像是倾斜的或未正确对齐,或者可能是缩放的。所以我有以下要求 - 每个图像都必须识别它属于哪个图像模板。识别后,必须根据图像模板正确倾斜、对齐和缩放。

我知道这是一项复杂的任务,这就是为什么我需要一个库,最好是一个C#一。我已经发现AForge,但到目前为止我只看到了一种合适的倾斜方法。本质上,我需要一个库,它将图像模板和图像作为输入,并在图像与图像模板不匹配时设置一个标志。但如果匹配,则必须返回适当的倾斜角度、对齐方式和缩放比例。

如果您有任何想法或使用过这样的库,我将不胜感激。

祝你一切顺利,

Petar


问题似乎是一个图像配准问题加上一些模板匹配问题。

  • 图像配准

根据扫描文档的扭曲方式(比例因子、旋转、倾斜...),可以使用简单的刚性变换(即平移 + 旋转,仅需要两个对应点)将图像配准为更复杂的变换,例如非刚性变换(需要更多对应点)。可以手动给出相应的点,但理想情况下应该自动检测。

ITK库包括多种图像配准方法

  • 模板匹配问题

图像对齐后,可以通过首先提取图像中的特征并将其与模板数据库进行比较来实现图像和可能的模板数据库之间的比较。这是非常笼统的,应该根据所使用的图像进行改进。

还有其他方式可以结合both图像配准和模板匹配

  • the 功能包方法包括提取有趣的点(对多种类型的图像变形具有鲁棒性)从图像中,这些点生成表征图像的签名,图像比较实际上是签名比较。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像比较 - 旋转、对齐和缩放 的相关文章

  • 适合初学者的良好调试器教程[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个好的初学者教程 在 C 中使用调试器 我感觉自己好像错过了很多 我知道怎么做 单步执行代码并查看局部变量 虽然这常常给我带来问
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • 函数参数的默认参数是否被视为该参数的初始值设定项?

    假设我有这样的函数声明 static const int R 0 static const int I 0 void f const int r R void g int i I 根据 dcl fct default 1 如果在参数声明中指
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 数量重新分配逻辑 - 具有外部数据集的 MapGroups

    我正在研究一种复杂的逻辑 需要将数量从一个数据集重新分配到另一个数据集 在例子中我们有Owner and Invoice 我们需要从数量中减去Invoice准确地Owner匹配 在给定汽车的给定邮政编码处 减去的数量需要重新分配回同一辆车出
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • 打印大型 WPF 用户控件

    我有一个巨大的数据 我想使用 WPF 打印 我发现WPF提供了一个PrintDialog PrintVisual用于打印派生的任何 WPF 控件的方法Visual class PrintVisual只会打印一页 因此我需要缩放控件以适合页面
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个
  • GCC 的“-Wl,option”和“-Xlinker option”语法之间有区别吗?

    我一直在查看一些配置文件 并且看到它们都被使用 尽管在不同的体系结构上 如果您在 Linux 机器上使用 GCC 将选项传递给链接器的两种语法之间有区别吗 据我所知 阅读 GCC 手册时 他们的解释几乎相同 From man gcc Xli
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp
  • 如何使用 C++11 using 语法键入定义函数指针?

    我想写这个 typedef void FunctionPtr using using 我该怎么做呢 它具有类似的语法 只不过您从指针中删除了标识符 using FunctionPtr void 这是一个Example http ideone

随机推荐

  • 使用 python 缓慢上传到 azure blob 存储

    Api 接收文件 然后尝试创建唯一的 blob 名称 然后我将 4MB 的块上传到 blob 每个块大约需要 8 秒 这正常吗 我的上传速度是110Mbps 我尝试上传一个 50MB 的文件 花了将近 2 分钟 我不知道azure blob
  • 如何使用ajax保存到数据库

    我有一个工作正常的代码 但数据无法保存到数据库 我想通过 Ajax 将 cost currency rate profit rate 和 pprice 插入数据库 这是javascript和update php的代码 我尝试修改代码以保存在
  • 如何使用批处理文件分割字符串?

    如何使用批处理脚本分割字符串 设置java path C Program Files Java jdk1 6 0 31 上面是我的字符串 我只想要 java path 中的 C Program Files 如何得到它 您可以按字符位置拆分字
  • 使用 Log4j 的每个用户都有不同的日志

    我有一个 Web 应用程序 我想为每个用户使用不同的日志 这样我就可以获得用户在系统上执行的操作的 历史记录 这是我到目前为止所拥有的 import java io File import java io IOException impor
  • 将单词列表转换为数组[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我试图查看是否有任何脚本可以将单词列表转换为数组 但我似乎找不到 有人知道我在哪里可以找到一个吗 Input Dog Cat Hamster 转换为 Dog Cat Hamster 不
  • cURL 错误 58:SSL:无法加载证书“...”及其私钥:Mac 上的 OSStatus -25299

    该代码在 Ubuntu vagrant box 上运行良好 但在本地 MacO 上它不会加载证书 说 cURL error 58 SSL Can t load the certificate and its private key OSSt
  • 如何像矩阵乘法一样将行向量添加到列向量

    我有一个 nx1 向量和一个 1xn 向量 我想以一种特殊的方式添加它们 例如以有效的方式 矢量化 矩阵乘法 Example A 1 2 3 B 4 5 6 A odd add B 1 4 1 5 1 6 2 4 2 5 2 6 3 4 3
  • 命名空间::变量的多重定义,甚至使用 ifndef

    我知道我在这里一定做错了什么 rank h ifndef RANK H define RANK H namespace mmi int chunk void rank int my rank endif rank cpp include r
  • 如何检测 Python 是否作为 64 位应用程序运行? [复制]

    这个问题在这里已经有答案了 我正在对 Windows 注册表进行一些工作 根据 Python 运行为 32 位还是 64 位 某些键值会有所不同 如何检测 Python 是作为 64 位应用程序运行还是作为 32 位应用程序运行 我对检测
  • 在悬停时添加边框时如何防止移动? (透明边框不是解决方案)[重复]

    这个问题在这里已经有答案了 我想在悬停时为 div 添加边框 但是添加边框时 div 稍微有点拉屎 这是一个众所周知的问题 常见的解决方案是添加透明边框 例如 但是 我的 div 中有一张包含一些文本的图像 我希望该图像占据 div 的全宽
  • 正则表达式西班牙语和阿拉伯语单词

    如何编写匹配所有有效的西班牙语和阿拉伯语单词的正则表达式 用我知道的英语来说 它是a zA z 在希伯来语中是 俄语 我使用 JavaScript 范围a zA Z因为英语单词的简单和天真令人难以接受 它省略了所有带有重音符号的字母以及在借
  • 过渡到 vim。存在缩进问题

    我正在从手术中恢复 因此 我正在过渡到 VIM 作为起点 我选择使用 vim sensible 插件作为我的配置的基础 此外 我还安装了 vim rails 和 vim ruby 插件 这些都是通过 Pathogen 加载的 无论出于何种原
  • 序列化 JFrame 并通过网络发送

    我想做的是通过套接字发送 JFrame 问题是在我发送表格并按下按钮查看它之后 我得到以下异常 package ds3 import java io IOException import java io ObjectInputStream
  • Android - 在 UI Fragment 中保留对象

    在我的项目中 我最初使用的是这个方案 活动A UI gt 片段B 非 UI gt 适配器 AsyncTask B保留与setRetainInstance true 并更新A UI A实例化B with getFragmentManager
  • 在 .NET 中按换行符拆分字符串

    我需要在 NET 中将字符串拆分为换行符 我知道拆分字符串的唯一方法是使用Split方法 然而 这不允许我 轻松地 在换行符上拆分 那么最好的方法是什么 要分割字符串 您需要使用采用字符串数组的重载 string lines theText
  • jQuery Mobile 站点中所有页面通用的弹出窗口

    我正在尝试使用 jQuery Mobile 制作一个网站 它由 HTML 文件中的许多页面组成 有些只有一页 有些有多个页面 使用它们的多页功能 该网站将有一些通知弹出窗口 它们在所有页面上看起来都一样 我正在使用他们的弹出窗口新的弹出功能
  • Python-按前两个单词对行进行分组

    我想按文件中的前两个单词对文件进行分组 然后重新排列和打印 我想做 lines file readlines i 0 for line in lines word1 line split 0 word2 line split 1 if wo
  • c - 嵌入式系统中Long Long到char的转换函数

    我正在使用嵌入式系统 我需要实现一种将 long long 转换为 char 的方法 问题是我不能在这个系统中使用 sprintf 来做到这一点 所以我正在寻找替代方法 函数来实现这一点 欢迎提出 LongLongToChar 函数的实现建
  • FindBugs 希望 readObject(...) 为私有序列化,为什么?

    我正在某些代码上运行 findbugs 它说 readObject 方法必须是私有的才能调用序列化 反序列化 为什么 如果公开的话会有什么问题呢 About readObject writeObject 作为私有的 情况如下 如果你的类 B
  • 图像比较 - 旋转、对齐和缩放

    我有以下需求 有一些表格 即空白表格 例如调查中使用的表格 那些没有填充信息的 从现在开始我将称之为图像模板 除了图像模板之外 我还有很多图像 这些图像本质上都是充满信息的图像模板 例如 有一项调查 有两个空白需要填写 这些是图像模板 许多