问题标签 [image-registration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
840 浏览

image - 如何组合两个相同的场景图像进行图像配准

我尝试在两个灰度图像上进行图像配准,其中图像以不同的视图拍摄了两次。这些图像是我自己使用 Lifecam 相机拍摄的。

为了注册这些图像,我使用模板匹配方法和归一化互相关作为相似性度量并找到了正确的位置。但是这两张图片组合后的结果并不如我所愿。我不知道如何解决它。在合并之前我需要先做一些旋转或平移吗?如果是这样,我不知道如何获得旋转的真实角度。或者您知道如何在不应用任何旋转的情况下修复图像结果?

输入图像 1:

输入图像 1

输入图像 2:

输入图像 2

结果:

结果

这是我的代码:

0 投票
0 回答
585 浏览

python - 如何解释 OpenCV 扭曲矩阵?

我正在使用findTransformECC自动图像对齐功能。我只是在纠正一个转变,所以我使用了 warp 模式MOTION_TRANSLATION。图像对齐与cv2.warpAffine.

接下来我想做的是使用warpMatrix来移动整批图像。我无需在 Python 中加载图像就可以做到这一点,所以我不想使用 OpenCV 函数来完成这项工作。但是,我并不完全了解warpMatrix.

我的矩阵看起来像:

我想最后一列代表像素的变化。但是哪一行对应哪个轴呢?其他列代表什么?

0 投票
0 回答
1035 浏览

python - Python中强大的非刚性图像配准速度

我想估计在 Python 中对两个高清图像运行图像配准算法的速度。注册也需要非常强大。理想情况下在一秒钟内运行。我找到了一些库并进行了一些测试(例如在此页面中使用 cv2 的第一个代码片段),但结果令人失望。

例如,它不适用于以下两个图像,试图将第二个图像放在第一个图像上:

有谁知道一种快速的算法,它是健壮的,可以从 Python 中调用吗?与图像分辨率相关的加速呢?理想情况下,我会使用高清图像。我也发现了这个,但没有时间测试它: http: //pyimreg.github.io/

0 投票
0 回答
44 浏览

computer-vision - 重新审视 AAM:Jacobian(deltaW/delta x 和 y) 不会总是计算为 1 吗?

介绍

嗨,我很确定我做了一个无知的误解。因此,我会提前道歉。

问题是关于第 4.1.2 节的方程 30 的论文AAM Revisited。其中,Jacobian(delta W/delta x 和 y) 的每个(因子)计算为 (1-ab, 0) 和 (0, 1-ab) 其中 a 和 b 由第 25 节和第 26 节中的等式 25 和 26 给出4.1.1。

此外,雅可比是相对于顶点 xi 进行评估的,假设网格没有变化(在第 34 页图 13 中的论文中给出,预计算步骤 4,作者指出雅可比是相对于 (x; 0),其中 0 部分是变化)。

本质上,等式 25 和 26 中的 xio 和 xi 应该等价,以及 yio 和 yi 在论文中写为 p = 0 和 q = 0。

问题

在这里,我会回答我的问题。如果 xi 和 xio 以及 yi 和 yio 在计算等式 30 中给出的雅可比因子时是等价的,鉴于在这种情况下 a 和 b 将计算为 0(因为分子将变为 0),从等式 25 和 26,等式 30 中的值不应该总是 (1,0) 和 (0,1) 吗?提前致谢!

笔记

由于我没有在 stackoverflow 中看到任何其他与研究论文相关的问题(可能是由于我缺乏经验),我怀疑这种问题最好在不同的网站上提出。如果是这样,我可以问任何建议吗?

0 投票
0 回答
468 浏览

c++ - 在 OpenCV 中将复杂的 Mat 与真实的 Mat 相除

如何在 OpenCV 中将复杂的 Mat 与真实的 Mat 分开?我想计算相位相关的互功率谱,但使用除法时出现运行时错误。

更新 我想出了一种计算交叉功率谱的方法,但我没有得到合适的结果来找到图像的翻译。下面是代码。我拆分了逆 dft 的结果,因为它有两个通道。然后,我能够划分,但结果仅在水平轴上不适合平移。最大值应该只有一个,但最大值有很多。

图片

0 投票
1 回答
198 浏览

python - 在使用 simpleITK (python) 注册期间捕获警告

我正在使用 simpleITK (python) 执行图像配准 ImageRegistrationMethod.Execute()。目的是收集图像注册过程的一些统计信息(例如找出何时成功和何时失败),因此我ImageRegistrationMethod用不同的初始转换初始化实例,包括不会导致注册成功的那些。在执行时,simpleITK 有时会抛出异常,这很好,因为我可以捕捉到它。但有时我会在 stderr 中收到这样的警告

或这个

但注册继续进行。

问题是当注册完全顺利时,我如何区分(从 python)实例与带有警告的这种情况。一个简单而愚蠢的选择是监控标准错误,但也许有一些 ITK 功能来报告这些事件?

0 投票
1 回答
996 浏览

python - 索引 numpy 索引,如具有 2D 点列表的数组

我正在使用 python 2.7

我有一个由创建的索引数组

ids[0] 填充所有垂直坐标,ids 1填充所有水平坐标 ids 的形状为 (2,20,20)

我有一个形状为 (20,20) 的布尔蒙版

我需要一个与掩码中标记为 true 的 id 相对应的 id 列表。

我试图通过 mid=ids[:,mask].T 来做到这一点,它给了我一个这样的列表

[2,17] [4,6] [1,19] [18,4]

等等。它们保存在一个名为 mid 的数组中

然后,我需要所有这些坐标在中间找到另一个数组中的值。意思是我需要

另一个数组([2,17])

我还没有设法以一种花哨的索引方式使用 mid 列表,有人可以帮助我吗?

我有

它不起作用。我也有

它不起作用

编辑(仅当您关心上下文时才阅读):我想添加上下文以说明为什么我认为我需要额外的索引。也许我没有,这就是我想弄清楚以提高效率。

这是一个注册问题,非常简单。我有两张图片。参考和浮动如下所示。参考左侧,并浮动到右侧。

参考图像 浮动图像

参考图像和浮动图像在不同的坐标空间中。正如您在图像中看到的那样,我已经标记了点。我发现彼此之间存在仿射变换。

由线划定的区域是我感兴趣的区域。我将浮动空间中该区域的坐标发送到参考空间。

在参考空间中,我找到了在区域内找到的像素,它们变成了mask数组,包含内部和外部像素的信息。

但我只关心里面的那些,所以我只想要参考空间中掩码内的那些像素的索引并使用它们保存它们mid=ids[:,mask].

一旦我有了这些点,我将它们转换回浮动空间,在这些新索引中我需要寻找强度。这些强度将在其相应索引的参考中写回。这就是为什么我认为我需要在参考空间和浮动空间中拥有这些点的索引,以及图像的强度。另一个图像是anotherarray我只想要转换后的蒙版像素的图像。

所以你去吧,如果你关心它,那就是解释。感谢您阅读和回答。

0 投票
0 回答
70 浏览

image - SimpleITK 在进行图像配准时如何能够区分不同的颜色

我正在研究一种使用常规梯度下降法的 simpleITK 图像配准方法。我很想知道 simpleITK 如何突出固定图像和移动图像之间的差异。

例如下面的教程之一,它显示了粉红色和绿色的不同颜色:固定图像 - 红色移动图像 - 绿色

http://kevin-keraudren.blogspot.in/2014/12/medical-image-analysis-ipython-tutorials.html

图片礼貌 - 凯文 Keraudren。

0 投票
1 回答
1293 浏览

image-processing - 如何使用ANTS注册工具?

我正在从事医学图像分割。我有 120 名患者的 T1 加权 MRI 及其相应的标签卷(总共 240 卷)。我没有使用图像注册。我安装了ANTS,但我不知道如何在这些 MRI 上申请注册。我对几个问题感到困惑:

  1. 应该考虑哪位患者,哪位fixed患者moving?这种选择的标准是什么?
  2. 既然这是分割任务,那么地面实况图像也应该被注册?如果是,如何?
0 投票
0 回答
76 浏览

python - Python - 旋转模板匹配(不使用特征匹配)

我正在寻找一种进行模板匹配的方法(在 Python 中),其中模板被旋转(角度未知)。比例没有修改:我只需要找到刚体运动。模板实际上是原始图像的裁剪,旋转了一个未知的角度。

我尝试了特征匹配方法,使用 SIFT、SURF、FAST 等。问题是模板很小(大约 90x90 像素)并且关键点检测器找不到足够强的关键点(它们将它们过滤掉)。如果我放宽约束并无论如何取关键点,当我搜索点对应时,我会有很多异常值。例如,如果使用 RANSAC 过滤异常值,我又没有足够的点对应关系来找到转换。

这个问题似乎并不难,因为模板来源于原始图像(裁剪)然后旋转。

有没有我没有想到的通常用于此类问题的方法?