Как сделать результат дескриптора Фурье нечувствительным?
Я пытаюсь различить форму для изображений в Matlab, используя дескриптор Фурье. Что я хочу сделать, это: 1. Сгенерировать дескрипторы Фурье для каждого изображения; 2. Рассчитайте евклидово расстояние между этими дескрипторами Фурье, чтобы сравнить формы.
Моя проблема в том, что я не могу сделать результат вычисления дескриптора Фурье нечувствительным к геометрическому преобразованию (например, вращение и масштабирование).
Код, который я сейчас использую, называется "Gonzales matlab version", который приведен в этой ссылке. Я попытался нормализовать результат, выполнив это:
% Normalization
DC = f(1);
f = f(2:11); % getting the first 20 & deleting the dc component
f = abs(f) ; % use magnitudes to be invariant to translation & rotation
f = f/DC; % devide the fourier coeffients by the DC-coefficient to be invariant to scale
Но я не думаю, что это сработало, как я ожидал. Результат будет другим, если я изменю направление или масштаб того же изображения.
Я был пойман в ловушку этим вопросом в течение нескольких дней. Буду признателен за любые предложения, спасибо всем заранее!
1 ответ
Я рекомендую вам прочитать "Извлечение Feauture и обработка изображений для компьютерного зрения" Никсона и Агуадо. Вы найдете там то, что вы ищете