问题标签 [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.
python - 如何计算保形仿射变换?
我正在研究图像配准问题,因此在提取特征点(一组 3 或 4 个 2D 点)后,我必须计算仿射变换矩阵。
根据定义,仿射变换由缩放、平移、旋转和切变组成。在我的情况下,转换是保形的,这意味着不允许折叠。
我尝试过的所有函数都通过剪切计算仿射变换矩阵,如何实现保形仿射变换?
谢谢
image-processing - 深度学习需要图像配准吗?
我有一个关于生物医学图像分析的一般性问题。由于生物医学图像需要配准以在相同空间中对齐图像并更好地提取特征。我的问题是基于深度学习的分类是否还需要对训练数据集的图像进行图像配准?与深度学习一样,架构本身定义了最佳特征,使用深度神经网络进行腹部 CT 扫描图像分类是否需要配准?当我们执行数据增强以更好地训练数据时,在这种情况下是否仍然需要图像配准?
image - 图像配准中变换矩阵与图像尺度的关系
我目前正在使用“注册估计器”应用程序进行图像注册。
基本上,该应用程序允许用户使用多种方法注册两个图像,并且输出包括变换矩阵。
问题是,现在我要注册两张大图,两张图的大小分别是63744*36064和64704*35072。直接注册两个图像几乎是不可能的,因为它们太大了。
我使用的方法是首先获得用于配准的缩放图像并导出变换矩阵并将该矩阵应用于原始图像。
但是,我发现即使是同一张图片,在不同的层次上也会得到不同的变换矩阵。
例如,大小为 3984(63744/16)*2254(36064/16) 和 4022*2192 的图像的变换矩阵不同于 1992*1127 (1/32) 和 2022*1096 (1/32)。
在那种情况下,我对大小和转换矩阵之间的关系感到困惑。谁能给我一个提示,以便我可以根据我对较低级别(较小尺寸)图像的转换矩阵精确注册两个原始图像?
python - 扫描文本表格的图像配准
我们打印了 500 个气泡调查表,取回它们,然后大批量扫描它们,为我们提供 500 个 PNG 图像。
每个图像的对齐方式略有不同,但大小和分辨率相同。我们需要注册图像,以便它们完全对齐。(下一步是对气泡进行半自动评分)。
如果这些是 3D-MRI 图像,我可以使用单个命令行实用程序完成此操作;但我没有看到任何此类用于对齐扫描文本文档的工具。
我已经按照Image Alignment (Feature Based) using OpenCV中的描述玩过 opencv ,它在工作时会产生炸药结果,但它经常失败。这种方法正在寻找隐藏在自然场景中的文档,这比我们的图像只是以 2D 而非 3 维旋转和平移的情况要困难得多。
我还探索了imreg_dft,它运行一致但效果很差——大概 dft 方法在照片上比在文本文档上更好。
是否已经存在用于扫描表格图像注册的解决方案?如果没有,正确的方法是什么?Opencv,imreg_dft,还是别的什么?
类似的先前问题: 如何在扫描的文档图像上找到空白字段
opencv - 使用 OpenCV 的 findHomography 对齐扫描的文档;如何避免明显不好的(非平面/3D)变换?
我们有数百份表格的扫描副本;我们需要将每个图像与模板对齐,校正二维的平移和旋转。
在尝试了一些基于 FFT 的方法之后,我们使用 OpenCV 进行对齐,如使用 OpenCV 的图像对齐(基于特征)一文中所述,我们获得了最佳结果。
当它工作时,它完美地工作。但它通常会产生非常奇怪的结果。
有时结果会适度偏向第三维,但通常糟糕的对齐方式荒谬到类似于抽象艺术的地步。
有没有办法将 findHomography 限制为仅平面结果?如果没有,有没有办法在 findHomography 的输出中检测非平面结果?
下面的截图,蓝色区域是我的编辑。
python - 仅沿一个方向测量两个图像之间的偏移
我必须测量两个单色图像之间的偏移。
这些图像实际上是校准前的光谱,非常嘈杂并且充满了不需要的特征,但它们基本上看起来像下面这样
我知道在不同的图像之间,它们沿 x 方向移动,但不会沿 y 方向移动。我想知道它们之间沿 x 方向的偏移量。
幸运的是,我在 , 中找到了一个函数skimage
,register_translation
它可以用于任意亚像素精度。但问题是,我只想知道沿 x 方向的偏移,并且我希望得到的 y 方向偏移为 0,但程序发现同时向 x 和 y 偏移,大概是沿着垂直于特征。(图中标注为蓝色箭头)
所以,我想知道:
是否有任何功能或包
python
可以仅测量两个图像之间沿一个方向的偏移,或者甚至有任何先验知识?找到两个嘈杂图像之间的变化的正确方法是什么?在 FFT 空间中找到最大的互相关值会起作用吗?
python - 执行图像配准时图像之间的不匹配
原图 1
原图 2
我正在尝试匹配两个显微镜图像(请参阅附件)。但是,匹配很糟糕,并且单应矩阵会产生不可接受的结果。有没有办法改进这个注册?
显示我得到的匹配的图像
python - 用圆和线计算变换
我正在尝试确定两个图像之间的转换(旋转+平移+缩放)以移动它们。
这些图像是用两种不同的方式拍摄的,它们会产生非常不同的纹理。所以我不能使用基于保持光流的技术。我认为对图像进行阈值提取以提取几何图形会很好(参见下面的示例)。但后来我看不出我能做什么......也许提取垂直线和中心圆来帮助我提取我的转换。
我在 python 中工作,我研究了 Opencv 可以提供什么,但目前几乎没有成功。
--- 稍后编辑 ---
我用霍夫变换检测到圆和线(见下图)。实际上,这将有助于正确注册。但是,我可以使用 Python 上的什么工具来注册这些元素?我经常使用光流守恒,但在这种情况下它相当复杂......
image-processing - 如何在正确的位置叠加 RTDOSE 和 Image 数据?
我目前是医学物理专业的 MS 学生,我非常需要能够将 RTDOSE 文件中的等剂量分布叠加到 .dcm 文件集中的 CT 图像上。
我已经成功地使用 pydicom 和 dicom_numpy 自己提取了图像和剂量像素数组,但是这两个数组的大小不同!因此,如果我将两者叠加在一起,则根据 Elekta Gamma Plan 软件导出的内容,剂量将不会处于正确的位置。
我玩过 dicompyler 和 3DSlicer,即使数组大小不同,它们显然也能做到这一点。但是,我想我在使用这些软件时无法导出数值数据。我只能滚动浏览并以图像的形式查看。如何将 RTDOSE 叠加到 CT 图像上?
谢谢
point-cloud-library - 带有 pcl 的 IterativeClosestPoint 没有给出预期的结果
我有两个点云。为了匹配它们,我尝试使用 ICP 进行注册。点云不是超级相似,但我想至少让它们非常接近。
IterativeClosestPoint
从 pcl 库中使用时,当我使用我的 pointCloud作为A
源并使用 pointCloudB
作为目标时,它可以工作。B
但是当我用作源和A
目标时它不起作用。在后一种情况下,它甚至增加了我两朵云之间的距离。
有谁知道我做错了什么?为什么更改源/目标时性能会有差异?
这是我的代码:
我很高兴有任何想法和意见。
更新:
我尝试使用我的代码Cloud A
作为源和Cloud A
* 作为目标。其中* 是x 轴上只有平移Cloud A
的副本。Cloud A
我做了同样的实验,Cloud B
两者都能够成功地在 icp 中收敛。
但是,一旦我将Cloud B
其用作源和Cloud A
目标,它就不再起作用,并且仅在将云移动一点点(甚至是错误的方向)后就会收敛。我检查了收敛标准,发现它是CONVERGENCE_CRITERIA_REL_MSE
(当 transfromationEpslion 几乎为零时)。我尝试减少相对MSE,
icp.getConvergeCriteria()->setRelativeMSE(1e-15)
但这没有成功。在收敛后检查 relativeMSE 的值时,我得到如下信息:-124034642
这对我来说根本没有任何意义。
更新 2:我首先在没有 ICP 的情况下将云移得很近。当做这个ICP工作正常。
Update3:我正在做一个 FPFH 进行第一次估计,然后是 ICP。这样做也可以。