информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / site updates
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Давай для примера говорить только о разветвлениях [upd] 24.10.05 20:22  Число просмотров: 4671
Автор: whiletrue <Роман> Статус: Elderman
Отредактировано 24.10.05 22:58  Количество правок: 3
<"чистая" ссылка>
> Поближе к конкретике. Остановимся на двух видах узлов -
> начало/конец линии и разветвление (точка, из которой
> выходит три линии).
> Есть абсолютные координаты со сканера в пикселях, например.
> 1. Н, x1, y1
> 2. Н, x2, y2
> 3. Н, x3, y3
> 4. Р, x4, y4
> 5. Р, x5, y5
> 6. Н, x6, y6
> Н - тип "начало линии"
> Р - тип "разветвление"
> x и y - координаты в диапазоне 0-255 (байт)
> Как уйти от абсолютизма, чтоб новые параметры не зависели
> ни от сдвига отпечатка в любом направлении, ни от поворота,
> ни от масштаба? Формулу/алгоритм пожалуйста.

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

Ив итоге у нас не просто координата, а вся как бы "предыстория" образования этой точки - мы видим как шла линия и что из этого получилось. Поэтому резкий перепад направления (в случае разветвления) находится очевидным образом. Какая разница как повернут или масштабирован палец? Мы всегда увидим резкий перепад (просто, что он есть). Просто что перепад есть - это же инвариантно!

Как инвариантно хранить:
0. Делаем двумерный массив из struct{int x,y}, где x и y - либо -1, либо 1, ну еще 0, наверное
1. Бежим по полю направлений (ну крестиком допустим, т.е. текущий пиксел + пиксел ниже + пиксел выше + пиксел справа + пиксел слева)
2. Находим первый резкий перепад
3. Заносим в нашу таблицу
    0
0  0,0

---

4. Дальше находим второй перепад, допустим, он ниже и левее первого
5. Заносим в таблицу
    0     1
0  (0,0) (1,-1)
1 (-1,1) (0,0)

---
И т.д.

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

Конечно, вероятность того, что попадуться 2 человека, для которых она одинаково сработает - большая, но опять таки, я не претендую на оптимальность данного алгоритма - это для примера.

> Как получить "хеш" из 30 значений, чтоб по двум этим
> "хешам" можно было просчитать насколько эти отпечатки
> отличаются друг от друга? Как по этому "хешу" найти из
> десятка образцов тот, на который он более похож?

хэш - должен быть один и тот же для данного пальца (ну... еще на данном устройстве).
<site updates> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach