Przetwarzanie i Kompresja Obrazów. Aleksander Denisiuk(denisjuk@pja.edu.pl) Polsko-Japońska Akademia Technik Komputerowych Wydział Informatyki w Gdańsku ul. Brzegi 55, 80-045 Gdańsk 5 czerwca 2016 1/27
Najnowsza wersja tego dokumentu dostępna jest pod adresem http://users.pja.edu.pl/~denisjuk/ 2/27
Podstawy 3/27
Podstawy Podstawy Oddzielićobiektodtła f(i,j) funkcjaobrazuwpikselu(i,j) Ω obszarspójny Ω granica obszaru(ma sąsiednie piksele, należące do obszaru i sąsiednie piksele, nie należące do obszaru). e(x,y) krawędźwpikselu(i,j). wektordwuwymiarowy,określanyprzezgradient: norma:m(i,j)= f(i,j) = f(i,j) kierunek:θ(i,j)=arctan f y (i,j)/ f x (i,j) π 2 4/27
Proste progowanie Półprogowanie pasmowe Histogram optymalne 5/27
Proste progowanie Proste progowanie Półprogowanie pasmowe Histogram optymalne Podziałnadwasegmenty Danyjestprógτ Możebyćnaodwrót g(i,j)= g(i,j)= { 1, f(i,j) τ, 0, f(i,j)<τ. { 1, f(i,j)<τ, 0, f(i,j) τ. f(i,j)możebyćkolorem,luminancją,gradientem,etc 6/27
Półprogowanie Proste progowanie Półprogowanie pasmowe Histogram optymalne Niezmieniaobiekt Tłoustawiajakoczarne g(i,j)= { f(i,j), f(i,j) τ, 0, f(i,j)<τ. 7/27
pasmowe Proste progowanie Półprogowanie pasmowe Histogram optymalne DanyjestprzediałprogowaniaU Przykładowo[τ 0,τ 1 ] g(i,j)= { 1, f(i,j) U, 0, f(i,j)/ U. 8/27
modalne Proste progowanie Półprogowanie pasmowe Histogram optymalne Jeżeliobiektmaluminancję,któraróżnisięodluminancji tła, histogram będzie mieć dwa maksima(bimodalny histogram) Zaprógwybierasięminimumlokalnemiędzymaksimami Jeżeliluminancjaniejestrównomierna,histogrammoże mieć więcej niż dwa maksima obraz dzieli się na fragmenty i do każdego fragmenty stosuje się powyższą metodę 9/27
iteracyjne Proste progowanie Półprogowanie pasmowe Histogram optymalne Zapoczątkowyprógprzyjmujesięśredniawartość Obrazdzielisięnadwaobszary Zakolejnyprógprzyjmujepół-sumaśrednichobiektuitła Warunekzakończeniaiteracji:stabilizacja 10/27
Algorytm progowania iteracyjnego Proste progowanie Półprogowanie pasmowe Histogram optymalne Wejście:f(i,j) m nobraz,ε>0 dokładność Wyjście: τ próg optymalny z dokładnością ε τ n+m 1 f(i,j) repeat Ω 1 {(i,j) f(i,j) τ}, Ω 2 {(i,j) f(i,j)<τ} µ 1 1 Ω 1 f(i,j), µ 2 1 Ω 2 f(i,j) Ω 1 Ω 2 τ 1 µ 1+µ 2 2 τ τ τ 1 τ τ 1 until τ>ε 11/27
Algorytm Canny ego Śledzenie krawędzi 12/27
Algorytm Canny ego Algorytm Canny ego Śledzenie krawędzi OperatorygradientoweRobertsa,PrewittaorazSobela pozwalają na wzmocnienie krawędzi, ale Szerokośćkrawędzi powiększa się Szum może spowodować artefakty AlgorytmCanny ego: 1. rozmycie Gaussa 2. obliczenie normy i kierunku gradientu w każdym pikselu 3. detekcja pikseli granicznych 4. progowanie z histerezą 13/27
Rozmycie Gaussa Algorytm Canny ego Śledzenie krawędzi 1 4 7 10 7 4 1 4 12 26 33 26 12 4 splotzfiltremh= 1 7 26 55 71 55 26 7 1115 10 33 71 91 71 33 10 7 26 55 71 55 26 7 4 12 26 33 26 12 4 1 4 7 10 7 4 1 ObrazwygładzonyS=h f 14/27
Obliczenie gradientu Algorytm Canny ego Śledzenie krawędzi ( S ) 2+ ( ) 2 G(i,j)= x (i,j) S y (i,j) ) θ(i,j)=arctan( S y (i,j)/ S x (i,j) gdzie S x (i,j)=1 2 ( S(i+1,j) S(i,j)+S(i+1,j+1) S(i,j+1) ) S ( ) y (i,j)=1 2 S(i,j+1) S(i,j)+S(i+1,j+1) S(i+1,j) 15/27
Wyznaczenie pikseli granicznych Algorytm Canny ego Śledzenie krawędzi Piksel(i,j)jestgranicznym,jeżeliG(i,j)jestlokalnym maksimum w kierunku gragientowym niechp 1 =(i 1,j 1 )orazp 2 =(i 2,j 2 )będądwoma sąsiednimi pikselami w kierunku gradientu obraz wynikowy określa się w sposób następujący: φ(i,j)= { G(i,j), jeżelig(i,j) G(i1,j 1 )&G(i,j) G(i 2,j 2 ), 0 w przeciwnym przypadku. 16/27
Piksele, sąsiednie w kierunku gradientu Algorytm Canny ego Śledzenie krawędzi Wybierasięz8-otoczeniapikselap=(i,j) Kwantyzacjakierunkugragientuθ(i,j) 1. jeżeli π 8 <θ(i,j) π 8,toθ=0oraz (i 1,j 1 )=(i,j 1),(i 2,j 2 )=(i,j+1) 2. jeżeli π 8 <θ(i,j) 3 8 π,toθ=π 4 oraz (i 1,j 1 )=(i+1,j 1),(i 2,j 2 )=(i 1,j+1) 3. jeżeli 3 8 π<θ(i,j) π 8,toθ= π 4 oraz (i 1,j 1 )=(i 1,j 1),(i 2,j 2 )=(i+1,j+1) 4. jeżeli 3 8 π<θ(i,j)<3 2 πlub π 2 <θ(i,j)< 3 8 π,to θ= π 2 oraz(i 1,j 1 )=(i 1,j),(i 2,j 2 )=(i+1,j) 17/27
krawędzi Szumoraztekstury(powtarzającesięfragmenty)mogą spowodować artefakty Algorytm Canny ego Śledzenie krawędzi Przeprowadzasięprogowanieodwóchprogachτ 1 <τ 2 jeżeliφ(i,j)>τ 2,topikselzaliczamydogranicznych każdysąsiednipiksel,którymaφ(i,j)>τ 1 też zaliczamy do pikseli granicznych pozostałe piksele wyłączamy z granicznych 18/27
Algorytm Algorytm Canny ego Śledzenie krawędzi Wejście:φ(i,j) m nobraz,τ 1 <τ 2 dwaprogi, E(i,j)=0 wypełnionyzeramim nobraz, Ω(i, j) przedstawia 8-otoczenie piksela Wyjście: E(i, j) zawiera obraz segmentowany repeat continue false forall(i,j) [0...m 1] [0...n 1]do ifφ(i,j)>τ 2 then E(i,j) 1;φ(i,j) 0;continue true elseifφ(i,j)>τ 1 then ifω(i,j)zawierapiksel(k,l),takiżee(k,l)==1 then E(i,j) 1;φ(i,j) 0;continue true endif endif end for until continue 19/27
Śledzenie krawędzi Algorytm Canny ego Śledzenie krawędzi Binaryzacja:obiektjestczarnym,tłobiałym Wybórpiertwszegopikselanakrawędzi zacząć od lewego dolnego rogu pierwszy napotkany czarny piksel jest na krawędzi Obejściekrawędzi(wzdłużczarnychpikseli) Pokażdymkrokuspróbowaćprzejśćwlewoiwdół Konieciteracji:osiągnięciepoczątkowegopikselaporaz drugi Następnyobszar:czarnypiksel,sąsiednidobiałego,który nie należy go granicy poprzedich obiektów 20/27
Przykład Algorytm Canny ego Śledzenie krawędzi 21/27
Rozrost Obszarów Łączenie Obszarów (SRM) 22/27
Rozrost Obszarów Rozrost Obszarów Łączenie Obszarów (SRM) Poszukiwanieziarna piksela,należącegodoobiektu Wyszukiwaniepikseliz4-sąsiedztwa,podobnychdo wyznaczonego funkcja podobieństwa: luminancja, kolor, tekstura, etc kryteriumpodobieństwapikselip 1 ip 2 : s(p 1,p 2 )= { 1, jeżeli f(p1 ) f(p 2 ) <τ, 0, jeżeli f(p 1 ) f(p 2 ) τ, gdzie τ jest progiem podobieństwa 23/27
Algorytm Rozrost Obszarów Łączenie Obszarów (SRM) Wejście: punkt(i, j) zawiera się w obszarze Wyjście: wyznaczony jest cały obszar StosS zaznacz(i,j);s S (i,j) whiles do S S\(i,j) ifniezaznaczonypodobnypiksel(i 1,j)then zaznacz(i 1,j);S S (i 1,j) endif ifniezaznaczonypodobnypiksel(i,j 1)then zaznacz(i,j 1);S S (i,j 1) endif ifniezaznaczonypodobnypiksel(i+1,j)then zaznacz(i+1,j);stoss S (i+1,j) endif ifniezaznaczonypodobnypiksel(i,j+1)then zaznacz(i,j+1);s S (i,j+1) endif end while 24/27
Łączenie Obszarów(SRM) Rozrost Obszarów Łączenie Obszarów (SRM) Obrazdzielisięnamałeobszary Małesąsiadująceobszaryłączysięnapodstawieśredniej (lub innej statystycznej wielkości) funkcji podobieństwa po połączeniu małych obszarów odświeża się statystyki Koniecobliczeń:niemożnapołączyćżadnychobszarów 25/27
Podział na małe obszary Rozrost Obszarów Łączenie Obszarów (SRM) Wejście:Danyjestm nobraz,f(i,j)jestfunkcjąpodobieństwa, τ jest progiem podobieństwa, piksele są niezaznaczone, k = 0 Wyjście: Obraz podzielony na k obszarów forall(i,j) [0...m 1] [0...n 1]do ifpiksel(i,j)niejestzaznaczonythen zaznacz(i, j); forallu Ω(i,j)do if f(u) f(i,j) <τthen if piksel u jest zaznaczony then zalicz(i,j)doobszarupikselau else zalicz(i,j)orazudoobszarur k k k+1;zaznaczpikselu endif else zalicz(i,j)doobszarur k ;k k+1 endif end for endif end for 26/27
Łączenie obszarów Rozrost Obszarów Łączenie Obszarów (SRM) Wejście:R(s)jesttablicąobszarów,s [0...k 1],r(s)jestśrednią funkcji podobieństwa dla obszaru s, T jest progiem podobieństwa dla obszarów Wyjście: sąsiadujące podobne obszary zostały połączone merged false repeat forallobszarr(s)do for all obszar sąsiadujący R(t) do if r(s) r(t) <Tthen połącz obszary R(s) oraz R(t) merged true endif end for end for until merged 27/27