Поскольку этот вопрос некоторое время оставался без ответа, я попытаюсь ответить на него.Я не могу предоставить конкретное решение для MATLAB, но могу предоставить общее решение.
Предполагая, что вы имеете в виду незначительное межкадровое изменение положения камеры, когда вы пишете "дрожание", это можно сделать с помощью разреженногометоды оптического потока.
Сначала вычислите пиксельное изменение между кадрами 1 и 2. Я использовал метод Лукаса-Канаде - здесь - это ссылка на какой-то источник MATLABкод.Обратите внимание, что этот метод довольно быстрый, поскольку он применяется к наборам объектов (т. Е. К углам и т. Д.).
На данный момент вы теперь знаете сдвиг (измеренный в пикселях) между кадром 1и 2. Чтобы зарегистрировать два изображения, просто сдвиньте кадр 2 «назад» на указанные значения сдвига.Например, если разница между кадром 1 и кадром 2 (-3,1), то есть на три пикселя влево и на один пиксель вниз, вы можете просто перевести кадр 2 на три пикселя вправо и на один пиксель вверх.
Повторите шаги 1 и 2 для всех последующих соседних пар изображений: 2,3, затем 3,4, затем 4,5 и т. Д.
Примечание.следите за знаками сдвига пикселей на шаге 2. Перевод вверх / вниз и влево / вправо зависит от порядка обработки кадров изображения (т. е. кадр 2 - кадр 1 или кадр 1 - кадр 2) и ориентации изображений (пиксельные координаты увеличиваются при движении вниз или вверх?)