| Author |
Message
|
Hopin Poziom 11

Joined: 04 Mar 2007 Posts: 75 Location: Rzeszów
|
#1
04 Nov 2007 15:49 Poprawa jakości obrazu linii papilarnych |
|
|
|
Witam
Pytanie do wszystkich zajmujących się obróbką obrazu, ale i nie tylko :D
Może zacznę od początku. Zrobiłem program, który pobiera obraz z czytnika linii papilarnych i zapisuje go do pliku. Problem w tym że ten obraz nie jest idealny:
Obraz ten jest w odcieniach szarości (0-255), i rozdzielczości 256x300. Myślę, że na początek trzeba go zamienić na obraz czarno biały, co też zrobiłem. Jednak nie wiem jak dalej postępować z tym obrazem, aby wyglądał np tak:
Próbowałem zastosować różne filtry np. dolnoprzepustowy, medianowy, zamknięcie, otwarcie... Oraz kombinacje np. dolnoprzepustowy-zamkniecie, medianowy-otwarcie itd. jednak żaden nie przyniósł oczekiwanego przeze mnie rezultatu.
Moje pytanie brzmi: Jakie filtry zastosować, lub jakie algorytmy aby uzyskać oczekiwany przeze mnie wynik :?:
Dodam jeszcze, że program piszę w Visual C++, jednak to raczej nie ma znaczenia bo na razie chciałbym poznać teorie, a dopiero potem przełożyć to na język.
Proszę o pomoc i pozdrawiam
|
|
| Back to top |
|
 |
Google

|
#
04 Nov 2007 15:49 |
|
|
|
|
|
| Back to top |
|
 |
MirekCz Poziom 22

Joined: 10 Dec 2004 Posts: 2198 Location: Gdańsk/Poznań
|
#2
05 Nov 2007 12:52 Re: Poprawa jakości obrazu linii papilarnych |
|
|
|
Nie konwertuj obrazu na czarno-biały, bo stracisz całą masę informacji.
Generalnie próbowałbym w takim kierunku:
1.Zwiększyć kontrast (i może trochę zmniejszyć jasność.. to już by pewnie zależało od danego zdjęcia i jego średniej jasności)
2.Przepuścić przez filtr (mediana lub wprost filtr który np zwraca kolor czarny jeżeli 2-3 punkty w pobliżu są koloru czarnego/szarego)
3.Teraz dopiero zamienić na obraz czarno-biały (generalnie można to zrobić łącznie z pkt. 2)
Ewentualnie przed pkt. 2 możesz jeszcze spróbować jakiś filtr gaussa (generalnie rozmazanie) z tym tylko, że nakładasz wynikowy kolor tylko jeżeli jest ciemniejszy niż kolor oryginalny. Tak żeby pogrubić/wzmocnić już istniejące linie.
|
|
| Back to top |
|
 |
KeinXor Poziom 17

Joined: 30 Mar 2005 Posts: 397 Location: Czeladź
|
|
| Back to top |
|
 |
Google

|
#
05 Nov 2007 13:25 |
|
|
|
|
|
| Back to top |
|
 |
Hopin Poziom 11

Joined: 04 Mar 2007 Posts: 75 Location: Rzeszów
|
#4
05 Nov 2007 16:02 Re: Poprawa jakości obrazu linii papilarnych |
|
|
|
:arrow: KeinXor
Binaryzacja raczej już jest zrobiona. Przecież odczytuje obraz i wyświetlam go na ekranie, poza tym zapisuje go w pliku oraz mogę odwołać się do konkretnego punktu w obrazie (inaczej nie mógłbym przetwarzać w żaden sposób tych danych, nakładać filtrów). W Visualu jest taka wartość BYTE która przechowuje wartości określonych pikseli.
:arrow: MirekCz
Tak w 100% zgadzam się z Tobą, że na początku nie można zamieniać na czarno-biały. Robię właśnie tak jak mówisz, najpierw przepuszczam przez filtr (filtry) a potem dopiero zamieniam na czarno-biały. Nie wiem czy to jest to samo co filtr Gaussa ale używałem filtru rozmywanie. Ale niestety nic ciekawego nie przyniósł. Poszukam jeszcze informacji o filtrze Gaussa. Bo właśnie chodzi też o to żeby pogrubić te linie, a najlepiej żeby były wszystkie takiej samej grubości.
Dziękuje za odpowiedzi, i czekam na kolejne wskazówki i uwagi...
Pozdrawiam
|
|
| Back to top |
|
 |
Google

|
#
05 Nov 2007 16:02 |
|
|
|
|
|
| Back to top |
|
 |
KeinXor Poziom 17

Joined: 30 Mar 2005 Posts: 397 Location: Czeladź
|
#5
05 Nov 2007 21:25 Re: Poprawa jakości obrazu linii papilarnych |
|
|
|
siemanko,
:arrow: Hopin, nie bardzo mogę się zgodzić z tobą i z tym co piszesz z tego co pamiętam to binaryzacja(progowanie) - kwalifikacja pikseli do zbioru których wartość przekracza lub jest równa zadanemu progowi.
Jest książka "Praktyka przetwarzania obrazów w programie Matlab" której autorem jest mi. Dr Robert Koprowski.
|
|
| Back to top |
|
 |
sirsimon Poziom 10

Joined: 28 Dec 2005 Posts: 52 Location: Krosno
|
#6
06 Nov 2007 11:13 Re: Poprawa jakości obrazu linii papilarnych |
|
|
|
:arrow: Hoppin
A może pokażesz nam jakie wyniki dają te filrty, które stosujesz. Bo może być tak, że ktoś tu się produkuje, a Ty masz zrobione to o czym mówimy i powinniśmy zająć sie następnym zagadnieniem. Bo z tego co tu czytam, to Twoj obraz jest przefiltrowany, a chodzi o to, żeby wynik filtracji jeszcze jakoś uregulować, by linie były ciągłe i równe.
:arrow: KeinXor
Co do binaryzacji, to jest to po prostu zamiana obrazu RGB, czy szarego na obraz czarno-biały. Patrząc na ten odcisk, próg byłby na pewno wysoki, gdyż obraz jest bardzo jasny. Może nawet bliski koloru białego.
Pozdrawiam i powodzenia
|
|
| Back to top |
|
 |
Hopin Poziom 11

Joined: 04 Mar 2007 Posts: 75 Location: Rzeszów
|
#7
06 Nov 2007 13:39 Re: Poprawa jakości obrazu linii papilarnych |
|
|
|
Witam
KeinXor masz rację, trochę się nie zrozumieliśmy.
SirSimon się dopominał więc umieszczam :D Najlepsze wyniki jakie udało mi się osiągnąć. Jak można je jeszcze "obrobić" żeby linie oraz odstępy między nimi były takiej samej szerokości? Jakie rozwiązania jeszcze proponujecie?
1. Filtr dolnoprzepustowy+otwarcie. || 2. Filtr medianowy+zamknięcie.
Pozdrawiam
|
|
| Back to top |
|
 |
sirsimon Poziom 10

Joined: 28 Dec 2005 Posts: 52 Location: Krosno
|
#8
06 Nov 2007 14:08 Re: Poprawa jakości obrazu linii papilarnych |
|
|
|
Widzę, że niestety w niektórych miejscach się obraz zlewa. Może zanim zaczniesz filtrować obrazy, poddaj je procesowi szkieletyzacji (wynikiem są linie ciągłe grubości jednego piksela), a potem w jakiś sposób pogróbić, np. za pomocą dylatacji :?:
|
|
| Back to top |
|
 |
Google

|
#
06 Nov 2007 14:08 |
|
|
|
|
|
| Back to top |
|
 |
Hopin Poziom 11

Joined: 04 Mar 2007 Posts: 75 Location: Rzeszów
|
#9
24 Nov 2007 16:29 Re: Poprawa jakości obrazu linii papilarnych |
|
|
|
Niestety, żaden filtr, kombinacja filtrów nie przynosi wyników przynajmniej zbliżonych do tych które chciałbym uzyskać :|
Czytałem trochę na temat poprawy jakości obrazu linii papilarnych, i natrafiłem na "filtr Gabora", próbuje go teraz przełożyć na C++ jednak nie jest to łatwe, niby z matematycznego punktu widzenia wszystkie wzory są przełożone właściwie a filtr nie chodzi. I tutaj zwracam się z pytaniem.
Może ktoś przede mną pracował z tym filtrem w C++? I może udało się komuś go uruchomić?
Proszę o wszelką pomoc, pozdrawiam
|
|
| Back to top |
|
 |
And! Poziom 23

Joined: 22 Aug 2002 Posts: 3986 Location: Świętokrzyskie
|
#10
28 Nov 2007 20:49 Re: Poprawa jakości obrazu linii papilarnych |
|
|
|
Obrazek trafi zapewne na sieć neuronową,
myślę że sieć powinna sobie poradzić nawet bez zaawansowanych technik obróbki.
W jaki sposób odczytujesz dane z czytnika, ma jakiś standardowy interfejs (HID ?) ?
|
|
| Back to top |
|
 |
Hopin Poziom 11

Joined: 04 Mar 2007 Posts: 75 Location: Rzeszów
|
#11
29 Nov 2007 11:36 Re: Poprawa jakości obrazu linii papilarnych |
|
|
|
Witam
Na podstawie biblioteki "libusb-win32" mam stworzony plik dll (sterownik) który obsługuje czytnik. Poprzez tę bibliotekę odwołuje sie do urządzenia i pobieram z niego dane. Mogę je wyświetlić na ekranie w normalnym ImageControl w Visualu C++ lub strumień ten od razu zapisać do pliku.
Chciałem zrobić rozpoznawanie odcisków "typowym" algorytmem, tzn poprzez wyszukanie minucji ale do tego potrzebowałbym niemal idealnych linii na obrazie, wiec pewnie będę musiał zrobić tak jak radzisz... Czyli zastosować SSN.
Pokaże jednak wynik jaki udało mi się uzyskać z filtru Gabora, obraz jest w połowie właśnie taki jaki chciałbym uzyskać.
|
|
| Back to top |
|
 |