Biometria, porównanie z wzorcem. Współrzędne minucji.

Biometria, porównanie z wzorcem. Współrzędne minucji.
MM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 86
0

Witam. Opracowuje algorytm do rozpoznania odcisków palców. Został mi jeszcze do napisania porównywanie z wzorcem. W tym celu potrzebuje współrzędne minucji (punktów charakterystycznych). Dokładnie współrzędne [x,y] oraz kąt Theta. Tak jak na zamieszczonym poniżej rysunku

user image

Jakkolwiek banalne się to wydaje, to mam problem z określeniem tego kąta właśnie. Ktoś może coś poradzić?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Wokół punktu X określ niewielkie kolo (jak największe ale takie aby nie trafiło na sąsiednie linii).
Od każdego czarnego punktu do X "narysuj" wektor. Zsumuj te wszystkie wektory.

MM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 86
0

To może być dość trudne, z tego względu, że niekiedy między dwiema liniami może być tylko jeden piksel odstępu... A są jakieś inne (gradientowe?) metody aby to osiągnąć?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Nawet jak jest tylko jeden piksel to tego w zupełności wystarczy.

MM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 86
0

Wtedy bedzie spora aproksymacja kata. Bo jesli takie kolo wyznaczyc to bedzie mialo 8 sasiadow... co daje od razu skok 45 stopni. Czy moze sie myle...

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie zupełnie wektory po obu stronach się skompensują.

MM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 86
0

Dobrze, juz sobie poradzilem z gradientami. Ale nurtuje mnie dalsza czesc pracy. Otoz gradienty Gx oraz Gy licze operatorem Sobela (splot punktu obraz oraz 8 sasiadow tego punktu z maska 3x3). Potem orientacja to arcus tangent -> atan[Gy/Gx]. Ale co zrobic jesli z obliczenia wyjdzie mi Gx=0. Wtedy mam dzielenie przez 0. Orientacje bede wykorzystywal przy Filtrze Gabora i ta sytuacja, gdy Gx=0 mnie zastanawia. Konkretnie nie wiem co zrobic gdy takie cos wystapi, poniewaz filtr musi miec jakas orientacje. Nie moge do obliczen przekazac 'nan' zamiast liczby, albo jeszcze innego smiecia.

MM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 86
0

No tak. Dzieki :) Troche zglupialem bo nie pomyslalem o arytmetyce liczb zmiennoprzecinkowych :) Wyniki wydaly mi sie lekko dziwne. Pozniej przerazily mnie otrzymywane wyniki w stylu 130 stopni dla arctg ;) I to byl moment, w ktorym zwatpilem w maszyny. Do chwili, w ktorej przebrnalem przez opis funkcji atan() i atan2()... Ciekawe pulapki sa zasadzane na mlodych, niedoswiadczonych programistow ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.