2017-01-18 13 views
2

Я пытаюсь выровнять два мультиспектральных изображения с использованием методов мультимодальной регистрации изображений.Редактирование многомодового изображения

Я построил прототип в 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. Пожалуйста, помогите в объяснении этих параметров и ускорении алгоритма.

ответ

0

Первое, что нужно проверить, это убедиться, что вы компилируете свою программу в режиме Release, а не в режиме Debug.

Documentation и source code для 1 + 1 оптимизатор в ITK доступен через Интернет.

 Смежные вопросы

  • Нет связанных вопросов^_^