我认为这应该是一项简单的任务,我无法找到方法:
我正在使用' imregister' (MATLAB)注册两个医用X射线图像。 为了确保尽可能获得最佳的配准结果,我使用了一些图像处理技术,例如对比度增强,图像之间不同的对象变黑甚至裁剪。 结果似乎非常令人满意。
现在,我想对原始图像执行完全相同的调整,以便我可以自动对齐显示两个ORIGINAL图像。
我认为像tform这样的输出参数可以用来在任意两张图像上执行某种注册,但不幸的是“注册”。据我所知,没有提供这样的参数。
它确实提供了空间引用对象R_reg作为输出,这可能是答案,但我仍然没有想出如何使用它来重新进行注册。
我应该提一下,因为我正在处理医学X射线图像,其中没有任何特征检测算法似乎能够很好地执行注册,我只能使用基于强度的(而不是基于特征的)注册,因此使用' imregister'。
有谁知道我怎么能做到这一点?
谢谢! 诺加
答案 0 :(得分:2)
因此,要从我的评论中做出回答,根据您使用的Matlab版本,您可以做两件事:
选项1:R2013a及更早版本
我建议通过强制imregister
作为输出来修改内置tform
函数,并以其他名称保存该函数。
例如:
function [movingReg,Rreg,tform] = imregister2(varargin)
保存,将其添加到您的路径中,您就可以开始了。如果您输入edit imregister
,您会注意到第一行调用imregtform以获取所需的几何变换,而最后一行调用imwarp,以应用该几何变换。这导致我们选择2。
选项2:R2013b及更高版本
那么在这种情况下,您可以直接使用imregtform
来获取tform对象,然后使用imwarp
来应用它。容易不是吗?
希望让事情更清楚!