【发布时间】:2017-06-02 14:47:45
【问题描述】:
我正在尝试使用多模态图像配准技术对齐两个多光谱图像。
我首先在 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 的值与我测试的执行速度成反比成正比。
我找不到描述 InitialRadius 和 GrowthFactor 等优化器参数如何在 ITK 中解释的文献/文档。请帮助提供这些参数的解释并加快算法速度。
【问题讨论】:
标签: c++ matlab optimization itk