Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Viewfinder Alignment 
:(
    Опции темы
baslie
Дата 6.12.2011, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.12.2011

Репутация: нет
Всего: нет



Хочу из вебкамеры сделать датчик передвижения - наподобие оптической мыши. В ходе обзора имеющихся методов оценки смещения по соседним изображениям натолкнулся на чудесный метод (чудесный, исходя из нетребовательности к ресурсам и скорости работы): Viewfinder Alignment ("Выравнивание видоискателя"?).

В принципе, то, что происходит в начале, более-менее понятно. Находим градиенты изображения в 4-ех направлениях: горизонтальный, вертикальный и два диагональных. На листинге (синтаксис Матлаба) показано, как мы получаем горизонтальный градиент (1). Затем для него создается массив, в каждый элемент которого суммируются вертикальные элементы градиента (2):

Код
function pl = horgrad(a)
[h,w] = size(a);
b = uint8(zeros(h,w));
for i = 1 : h
        for j = 2 : w
                b(i,j) = a(i,j) - a(i,j-1); % (1)
        end
end

pl = sum(b);  % (2)


Не знаю как называется эта штука (2), но на ней действительно (как и заявлено в описании метода) прослеживаются всплески в тех местах, где на изображении встречаются однородные вертикальные линии. Подобным способом получаются и остальные градиенты.

Непонятным остается следующее. Что мы делаем после того, как получили эти массивы? Как находим максимумы? И, собственно, как оцениваем смещение?
PM MAIL   Вверх
Pavia
Дата 6.12.2011, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



Вначале выделяются границы. 
Границы выделяются. Обычными градиентным методом по 4 направлениям.
Далее считаются интегральные проекции, то что вы суммами назвали.
Затем идёт выравнивание при помощи минимизации ошибки следующего кадра от предыдущего. Формулы приведены. Слишком устал чтобы переводит. Думаю можно взять матожидания и их разности этого должно хватить для минимизации ошибки. 

Но это не всё они ещё и повороты обрабатывают, но про это они описывают в общих словах. Для поворота после выделяю углы, алгоритм они не описывали но думаю в вилках должны были указать. 
Затем идёт определение вращения.  Так как гаризонатальные искажения мы уже нашли то ясно что сичтают поворот они от цента. Думаю методика аналогична тому как сделали с вертикалями через интегральные проекции только в этот раз в полярной системе координат. Углы в центре надо отсеять так как вносят большую ошибку.

Если время найду займусь сделаю. Давно хочу сделать подвижный сканер документов всё руки не доходят.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0607 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.