MATLAB Image регистрация похожа на TurboReg на ImageJ - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь зарегистрировать стеки флуоресцентных изображений в MATLAB, но у меня возникли проблемы при использовании imregister. Это работало хорошо, когда присутствовало много фонового шума, но терпело неудачу, когда сигнал в фоновом режиме выше. Чтобы это исправить, я подумал об использовании пакета Turboreg с Фиджи, так как он был разработан для выравнивания таких данных.

Однако большая проблема в том, что я использую MATLAB 2016b, который использует Java 7, а Фиджи требуется Java 8 для правильной работы. Поскольку я не могу изменить версию Java для MATLAB (причины), мне интересно, есть ли способ улучшить imregister, чтобы он работал аналогично Turboreg, или есть другая функция, которая может выполнять аналогично.

Код, который я использую для imregister, выглядит следующим образом:

    function Registerstack(Vid)
        tic
        display('Registration in Process')
        mImage=size(Vid,2);
        nImage=size(Vid,1);
        NumberImages=size(Vid,3);

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

        optimizer.InitialRadius = 0.009;
        optimizer.Epsilon = 1.5e-3;
        optimizer.GrowthFactor = 1.05;
        optimizer.MaximumIterations = 5;

        RVid = zeros(nImage,mImage,NumberImages,'uint16');

        RVid(:,:,1) = Vid(:,:,1);

        for r = 2:NumberImages
            RVid(:,:,r) = imregister(Vid(:,:,r),Vid(:,:,1),'rigid', optimizer, metric);

        end
        toc

        display('Registration Complete')
    end

Редактировать: для получения дополнительной информации. Я действительно рассмотрел вопрос об использовании эстимейта GeometricTransform , но из-за характера данных он не может извлечь из изображения достаточное количество функций и выполнить надлежащую регистрацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...