我正在尝试使用多模态图像配准技术对齐两个多光谱图像。
我首先在MATLAB中构建了一个原型,首先创建optimizer
和metric
对象,如下所示:
[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中解释InitialRadius
和GrowthFactor
等优化程序参数。请帮助提供这些参数的说明并加快算法速度。
答案 0 :(得分:0)
首先要检查的是确保在Release模式下编译程序,而不是在Debug模式下编译。
ITK中的 1 + 1 优化器的Documentation和source code可在线获取。