MATLAB:如何检索基于强度的注册数据(使用imregister)重新执行注册?

时间:2015-07-23 17:00:05

标签: matlab

我认为这应该是一项简单的任务,我无法找到方法:

我正在使用' imregister' (MATLAB)注册两个医用X射线图像。 为了确保尽可能获得最佳的配准结果,我使用了一些图像处理技术,例如对比度增强,图像之间不同的对象变黑甚至裁剪。 结果似乎非常令人满意。

现在,我想对原始图像执行完全相同的调整,以便我可以自动对齐显示两个ORIGINAL图像。

我认为像tform这样的输出参数可以用来在任意两张图像上执行某种注册,但不幸的是“注册”。据我所知,没有提供这样的参数。

它确实提供了空间引用对象R_reg作为输出,这可能是答案,但我仍然没有想出如何使用它来重新进行注册。

我应该提一下,因为我正在处理医学X射线图像,其中没有任何特征检测算法似乎能够很好地执行注册,我只能使用基于强度的(而不是基于特征的)注册,因此使用' imregister'。

有谁知道我怎么能做到这一点?

谢谢! 诺加

1 个答案:

答案 0 :(得分:2)

因此,要从我的评论中做出回答,根据您使用的Matlab版本,您可以做两件事:

选项1:R2013a及更早版本

我建议通过强制imregister作为输出来修改内置tform函数,并以其他名称保存该函数。

例如:

function [movingReg,Rreg,tform] = imregister2(varargin)

保存,将其添加到您的路径中,您就可以开始了。如果您输入edit imregister,您会注意到第一行调用imregtform以获取所需的几何变换,而最后一行调用imwarp,以应用该几何变换。这导致我们选择2。

选项2:R2013b及更高版本

那么在这种情况下,您可以直接使用imregtform来获取tform对象,然后使用imwarp来应用它。容易不是吗?

希望让事情更清楚!