问题标签 [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 投票
0 回答
42 浏览

javascript - 谷歌地图覆盖错位

虽然我已经成功部署了 Google Maps API,但一张新的、更大区域的图像被放错了位置。

为了演示这个问题,我从 这里的示例中获取了代码,并更改了 API 密钥、角和中心纬度以及仅图像。

你可以在这个链接上看到结果

在西北角很明显,覆盖应该向北移动,这样黑线就会覆盖海岸线。

同样在 SE 角,覆盖应该扩大?/ 感动?南,因此图像右边缘的黑线覆盖了捷克维采-季兹采附近的湖(可能需要放大才能找到它)。

图片由 NCL 制作。已使用“panoply”和“ncdump”检查输入数据

来自所有 3 个实用程序的角信息完全一致。

以前使用该 API 完全没有问题,并且注册是准确的。


建议?

问候

保罗得分手

0 投票
1 回答
619 浏览

matlab - DICOM:如何重新采样不同来源的多模态数据?

我有 2 组 1 位受试者的 DICOM 图像数据,包括同时拍摄的 PET 扫描和 CT 扫描。Frame of Reference UID 不同,我认为这意味着它们的参考来源不同。这样就无法比较“图像位置患者”标签。

我想要做的是重新采样两个图像,使它们的空间尺寸相等并且它们的像素尺寸相等。这项任务似乎相对简单,但事实上它们的起源不同。

链接到数据的样本图像(每种情况下最差的切片): 数据下载链接

0 投票
1 回答
235 浏览

dicom - 重新采样和注册图像数据 - 你首先做什么?

对于给定的患者,我有 2 个医学图像数据集,每个数据集同时获取,每个具有不同的模态。每个数据集的参考框架或坐标空间都不同(我不知道起源)。一个数据集的物理尺寸比另一个小,体素大小以及帧数也不同。我想重新采样和注册图像,我先做什么有关系吗?

0 投票
1 回答
2292 浏览

python - 使用 ORB 的 OpenCV 图像对齐

我需要精确对齐两个图像。为此,我使用增强的相关系数 (ECC)。除了旋转很多的图像外,这给了我很好的结果。例如,如果参考图像(基本图像)和测试图像(我想对齐)旋转 90 度 ECC 方法不起作用,根据findTransformECC()的文档,这是正确的,它说

请注意,如果图像经历强烈的位移/旋转,则需要进行大致对齐图像的初始变换(例如,允许图像大致显示相同图像内容的简单欧几里德/相似性变换)。

所以我必须使用基于特征点的对齐方法来做一些粗略的对齐。我尝试了 SIFT 和 ORB,但我都面临同样的问题。它适用于某些图像,而对于其他图像,则生成的转换会在错误的一侧移动或旋转。

这些是输入图像: 参考图像 要对齐的图像

我认为问题是由错误的匹配引起的,但是如果我只使用 10 个距离较小的关键点,在我看来它们都是很好的匹配(当我使用 100 个关键点时,结果完全相同)

这是匹配的结果: 在此处输入图像描述

这是结果: 结果

如果您比较旋转后的图像,它会向右移动并上下颠倒。我错过了什么?

这是我的代码:

0 投票
1 回答
249 浏览

alignment - Dicom 注册 - IPP 和 PS

我有两个具有以下图像患者位置 (IPP) 和像素间距 (PS) 的 dicom 文件

img1,PS 为 2mm IPP 为 (-256,-256,-128)

img2 的 PS 为 2.5mm,IPP 为 (-206,-201,-128)

对于图像重新调整/对齐,我知道我需要两个图像都具有相同的 PS 和 IPP

我的第一步是将img1 带至2.5mm 的PS,即将img1 插值 1.25 (2.5/2) 倍以匹配img2。

这是否意味着img1 的 IPP 也会变为 (-320,-320,-128) 即 1.25 (-256*1.25) 倍?

非常感谢提前

0 投票
3 回答
1943 浏览

python - 使用 SimpleITK 进行图像分割和配准

我对 3D 图像配准和分割有一些疑问:

  1. 加载 dicom 图像:在 DCE-MRI 中有 4000 个切片,总共 100 个堆栈,因此每个堆栈有 40 个。如何使用 GDCM simpleITK 函数将它们加载到 4D 数组

  2. 注册:注册非常简单,我们必须将所有 100 个堆栈注册到第一个堆栈。

  3. 配准精度:SimpleITK 重叠率测量或 hausdroff 距离需要分割和标记。现在,对于所有类型的图像,使用区域增长或阈值分割并不容易。假设我只想以交互方式手动选择一个区域。有可能实现吗?然后我只想使用选择的掩码进行注册准确性评估。

  4. 可视化和编写:需要使用 matplotlib 或 VTK 进行 3D 可视化。所有绘图功能都适用于 2d 切片,不需要再次在 2D 中可视化。使用 simpleITK write Image 函数写入 dicom 图像时,对于 dicom 图像,仅写入图像对象是行不通的。我们需要将 type 更改为 UInt32 ,但是图像会变得有损。它成功写入 .mha 格式,但 imageJ 无法显示。

如果可能,请分享您的想法。

0 投票
1 回答
2767 浏览

python - Python - 3D 医学图像配准库

Python 中有哪些库能够读取带有扩展名的 CT 模型文件,例如.vtkor.stl并使用普通视频执行 3D 图像配准。我找到了许多具有这种能力的软件,但我正在寻找的不是程序而是 Python 库,例如 Numpy 或 OpenCV,我需要做的就是import numpyimport cv2.

编造了我想做的事的例子

  • 第 1 步 - 获取人头骨的 3D CT 模型
  • 第 2 步 - 将 3D CT 模型读入 Python
  • 第 3 步 - 获取一个人静止不动的正常视频
  • 第 4 步 - 从正常视频执行 3D CT 头骨和人头的配准
  • 第 5 步 - 显示注册输出

我发现了几个“似乎”可以做这种事情的 Python 库,但是它们在库描述中没有足够的信息来确保这就是我想要的。我也愿意使用多个库。有没有人做过类似的事情,如果有任何图书馆经验的人能给我一些建议,那就太好了,谢谢。如果没有,我也会考虑其他语言的库。

到目前为止我所考虑的

  1. C++ 中的 FW4SPL 库
  2. C++ 中的 MITK 库
  3. Python 中的 MeVisLab 软件
  4. C++ 中的 Elastix 库
  5. Python 中的 SimpleElastix 库
  6. C++ 中的 ITK 库
  7. Python 中的 SimpleITK 库

对于FW4SPLMITK,由于调试旧错误后不断出现新错误,我一直无法成功编译源代码。似乎新错误的发生不会停止发生(我花了很多时间做这件事,不想再继续了)。

对于MeVisLab,这不是一个 Python 库,例如numpyor opencv,而是一个 GUI,据说也是可编程的。

对于Elastix、和SimpleElastix,它们确实是看起来很完美的 C++ 和 Python 库,但我不确定它们是否满足上述应用程序的要求。此外,我对彼此之间的关系感到非常困惑。ITKSimpleITK

0 投票
0 回答
609 浏览

image-processing - 支持图像注册的注册标记

我有一个要扫描的纸质文档,然后我想对文档的不同副本进行不同的扫描进行图像配准(图像对齐)。

我注意到纸质表格通常在纸的四个角上印有“注册标记”(十字准线:一个带有加号的圆圈)。它看起来像这样:

就我而言,我可以自由选择注册标记的确切形状,以使图像处理代码尽可能容易地检测四个注册标记的位置。我的目标是让代码尽可能有效和稳健地检测注册标记,因为图像可能会略微旋转/倾斜/平移。上面显示的“十字准线”形状是否最佳?是否有更好的标记更容易通过算法定位?

仅限黑白;很遗憾,我无法进行彩色打印或扫描。

0 投票
2 回答
205 浏览

dicom - 即使在配准后,ITK-SNAP 分割也显示相同的强度值

我正在使用 ITK-SNAP 来比较几个条件之间几个感兴趣区域的强度。

对于某些主题,我需要使用“配准”工具将一张图像与另一张图像重新对齐。

但是,我注意到无论我如何注册,我在参考图像上绘制的特定分割的强度值都不会改变。

两个图像之间的值会有所不同,但即使我手动将第二个图像注册到完全关闭的东西,它也会保持不变。

是否可以根据它在注册图像上的位置来获得我的分割的实际平均强度?

0 投票
1 回答
740 浏览

python - Mattes Mutual Info 对 3D 图像配准的基本疑惑

1. 消除相互信息质疑

在 SimpleITK Mattes 中,互信息是一种相似性度量度量,这是最大化函数还是最小化函数?

我尝试使用 Metric Mattes Mutual Info metric 和 Gradient Descent Optimizer 进行 3D 配准(图像尺寸:480*480*60)

输出


numofbins = 30

优化器停止条件:RegularStepGradientDescentOptimizerv4:24 次迭代后步长太小。当前步 (7.62939e-06) 小于最小步 (1e-05)。

迭代次数:25

指标值:-0.871268982129


numofbins = 4096

优化器停止条件:RegularStepGradientDescentOptimizerv4:34 次迭代后步长太小。当前步 (7.62939e-06) 小于最小步 (1e-05)。

迭代次数:23

指标值:-1.7890


如果它是一个最小化函数,那么较低的更好,我怀疑。

2.变换矩阵最终输出

TranslationTransform (0x44fbd20) RTTI 类型信息:itk::TranslationTransform 参考计数:2 修改时间:5528423

什么是修改时间?

3. Final Metric 是一种配准准确度度量吗?

公制是配准准确性的标志吗?更高的度量值是否意味着更好的配准?还是只是优化后的最佳值?

4. 随机抽样登记

10-20% 的随机样本点足以进行注册。但问题是,样本是从主要 ROI 还是从 ROI 之外获取的?掩蔽是一个选项,SimpleITK 中还有其他选项吗?

谢谢