多模态图像对齐问题

时间:2017-01-18 09:34:45

标签: c++ matlab optimization itk

我正在尝试使用多模态图像配准技术对齐两个多光谱图像。

我首先在MATLAB中构建了一个原型,首先创建optimizermetric对象,如下所示:

[optimizer, metric] = imregconfig('Multimodal');

这将创建类型为OnePlusOneEvolutionaryOptimizer的优化程序对象和类型为MattesMutualInformation的度量标准。图像对齐如下:

tform = imregtform(movingImage, fixedImage, 'rigid', optimizer, metric);

aligned = imwarp(movingImage,tform,'OutputView',imref2d(size(fixedImage)));

然后我去了one of the examples库中ITK v4提供的相同算法的C ++实现。

这个例子也给出了正确的结果,但问题是...... ITK版本比MATLAB版本慢。我玩了优化器参数,并且能够加速它,但不能与MATLAB版本相比。

OnePlusOneEvolutionaryOptimizer的MATLAB文档指出InitialRadius属性的值直接与算法的执行速度成正比(对鲁棒性有所影响)。这里的混淆是,在ITK中,InitialRadius的值与我测试的执行速度成反比

我无法找到文献/文档来描述如何在ITK中解释InitialRadiusGrowthFactor等优化程序参数。请帮助提供这些参数的说明并加快算法速度。

1 个答案:

答案 0 :(得分:0)

首先要检查的是确保在Release模式下编译程序,而不是在Debug模式下编译。

ITK中的 1 + 1 优化器的

Documentationsource code可在线获取。