0

Я использую фазовую корреляцию для сшивания изображений, и это дает хорошие результаты для большей части моих тестовых данных. Я просто stitiching пары изображений left-right и top-bottom (только сдвиг) Но есть странное поведение. первых странных координат, я должен преобразовать координатыфазовая корреляция для сшивания изображений (с использованием окна Хэмминга)

//if L-R 
pt.x= src->width-maxloc.x; 
pt.y= src->height-maxloc.y; 
if(pt.y>(temp->height/2)) 
    pt.y= -(maxloc.y+1); 
//if T-B 
pt.x= src->width-maxloc.x; 
pt.y= src->height-maxloc.y; 
if(pt.x>(temp->width/2)) 
    pt.x= -(maxloc.x+1); 

Тогда использование окна Хэмминга, кажется, что, когда я использую окно Хэмминга для лево-право шить она работает лучше (даже для плохих случаев), но если я использую окно Хэмминга для верхнего дна он работает плохо (даже в хороших случаях). И я думаю, что мне не нужно выделять отдельные случаи для L-R и T-B, я ожидаю, что фазовая корреляция просто даст мне глобальный максимум, но кажется, что некоторые ошибки в понимании БПФ или фазовой корреляции. вот код, который я использую http://codepaste.ru/9415/

ответ

0

Ваш код имеет явную ошибку:

//if L-R 
pt.x= src->width-maxloc.x; 
pt.y= src->height-maxloc.y; 
if(pt.y>(temp->height/2)) 
    pt.y= -(maxloc.y+1); 
//if T-B 
pt.x= src->width-maxloc.x; // (repeated) 
pt.y= src->height-maxloc.y; // <- overwrites previous value 
if(pt.x>(temp->width/2)) 
    pt.x= -(maxloc.x+1); 

Пожалуйста, вы можете показать изображения, которые вы пытаетесь зарегистрироваться.

+0

Нет, это не ошибка, я просто отправляю код для 2-х корпусов слева-справа и сверху-снизу (в действительности они находятся в разных местах). Я знаю отношение между изображениями (пары изображений), но не знаю процент от перекрытие, поэтому я выполняю фазовую корреляцию только для половины изображений (для уменьшения вычислительной сложности) Но я не понимаю, почему координаты должны быть преобразованы. Я хочу добиться чего-то подобного http://www.xuvtools.org/screenshots Опубликуйте несколько примеров позже. – mrgloom

+0

Теперь я даже думаю, что у меня есть некоторая ошибка в коде корреляции фаз, который был выполнен с использованием FFTW, вот код http://codepaste.ru/9423/, я тестирую его как phase_correlation2D (img, img, poc), и это дает мне (0,0). – mrgloom

+0

например 2 image http://rghost.ru/36647638 http://rghost.ru/36647639 – mrgloom

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

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