Я пытаюсь выровнять два мультиспектральных изображения с использованием методов мультимодальной регистрации изображений.Редактирование многомодового изображения
Я построил прототип в 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.
MATLAB документация OnePlusOneEvolutionaryOptimizer
утверждает, что стоимость InitialRadius
собственности непосредственно пропорциональна скорости выполнения алгоритма (компромат на робастности). Путаница здесь заключается в том, что в ITK значение InitialRadius
равно обратно пропорционально скорости выполнения, насколько я проверял.
Я не смог найти литературу/документацию, описывающую, как параметры оптимизатора, такие как InitialRadius
и GrowthFactor
, интерпретируются в ITK. Пожалуйста, помогите в объяснении этих параметров и ускорении алгоритма.