DSP dla kaûdego (cz. 4.) --------------------------- EXAMPLES, CZYLI KIJ I MARCHEWKA William Mobius Od tego odcinka miaîem zamiar zagîëbiê sië w gâszcz obliczeï i pokazaê na przykîadach, "jak to sië robi". Ale nasz Naczelny przeprowadziî ze mnâ rozmowë, z której wynikaîo, ûe po pierwszym artykule z serii "DSP dla kaûdego" rozdzwoniîy sië telefony i okazaîo sië, ûe teksty dotyczâce cyfrowego przetwarzania sygnaîów sâ, owszem, interesujâce, ale zbyt trudne i nasi drodzy Czytelnicy proszâ o obniûenie poziomu wykîadów tak, aby staîy sië one zrozumiaîe dla ôrednio pojëtnego kilkunastolatka. Teraz zaô zgodnie z ûyczeniami i ûeby zachëciê do póúniejszej pracy, a jednoczeônie zbytnio nie przegrzaê Waszych gîów, spuôcimy nieco z tonu i pokaûemy, co mogâ daê pewne proste metody i algorytmy odpowiednio zastosowane. Takie algorytmy moûna spotkaê w róûnych programach typu ADPro czy Image-FX dla Amigi. Niektóre z nich moûna nawet zasymulowaê na programie Deluxe Paint, co wymaga wprawdzie nieco pomyôlunku (znów te szare komórki), ale za to nie wymaga pisania programu. Czytelnik nie powinien sië przy tym przestraszyê spotykajâc znów nowe pojëcia, takie jak np. "BBF", "interpolacja", poniewaû zostanâ one wytîumaczone w nastëpnych odcinkach. Tu bëdziemy tylko podziwiaê rezultaty pracy wykonywanej przez komputery, czyli tego, co ktoô wczeôniej wymyôliî i opracowaî. >Pierwszy przykîad -- usuwanie zakîóceï typu 'pattern' z obrazu.< Rysunek nr 1 to syntetyczny obrazek (symulacja), przedstawiajâcy zdjëcie ekranu czarno-biaîego telewizora, wykonane z niewielkiej odlegîoôci. Obraz zakîóca widoczna struktura liniowa. Struktura ta, czyli po prostu poziome linie, jest wynikiem skanowania pîyty ekranu telewizora, pokrytej luminoforem przez strumieï elektronowy. Takie zdjëcie moûna jednak poprawiê, usuwajâc z obrazu skutki wybierania miëdzyliniowego -- rys. 2. Wbrew pozorom nie nadaje sië do tego celu zwykîa procedura, usuwajâca z obrazu co którâô linië i kopiujâca jâ na dalsze (zakîócone) linie. Dzieje sië tak dlatego, ûe przy skanowaniu obrazu linie czy pasy mogâ sië przesuwaê wzglëdem liniowej struktury obrazu, mogâ byê oddalone o róûne odlegîoôci (np. przy úle wyregulowanej liniowoôci kineskopu) i wreszcie mogâ sië zmieniaê w czasie (np. w wypadku restauracji starych filmów, nagrywanych metodâ telerecordingu). Znacznie lepiej nadaje sië do tego celu filtr pasmowo-zaporowy BBF z interpolacjâ, operujâcy po kolei na poszczególnych kolumnach obrazu (O-Y). Filtr ten ma tylko takâ wadë, ûe oprócz linii czy pasów "rozpuszczajâ sië" teû na obrazku wszystkie przedmioty o wymiarach pionowych równych mniej wiëcej szerokoôci pasma tegoû filtra (czëstotliwoôci przestrzennej filtra), czyli szerokoôci równej eliminowanemu zakîóceniu. Takie metody mogâ byê równieû oparte o analizë widmowâ, dziëki czemu moûna sobie wyciâê z obrazu czy filmu szerokie pasy lub inne tego typu "nieprzyjemne przyjemnoôci", takie jak ciapki, tzw. deszczyk, róûne kraty i szachownice i w zasadzie dowolne zakîócenie o w miarë regularnym wzorku. Na rysunku 3. widaê obraz z rysunku 1. po przeprowadzeniu filtracji. Szczegóîy ulegîy nieznacznemu zamazaniu, co jest wynikiem przeprowadzanej filtracji i samego procesu przetwarzania, ale znikîa za to struktura liniowa silnie przedtem zakîócajâca obraz. Na 3. rysunku widaê, ûe tak wyczyszczony obrazek ma drastycznie zmniejszonâ rozdzielczoôê pionowâ. Moûna to zjawisko czëôciowo wyeliminowaê, poddajâc go konwolucji ze specjalnym filtrem grzebieniowym, co spowoduje z jednej strony zamazanie grubych linii poziomych, a z drugiej uwydatnienie szczegóîów -- rys. 4. >Drugi przykîad -- restauracja zdjëê.< Rysunek 5. przedstawia... no wîaônie. Jest to zniszczone i wielokrotnie naôwietlone zdjëcie (symulacja) jakiegoô dokumentu. Wîaôciwie nic na nim nie widaê... Znów korzystamy z pomocy komputerów i po wczytaniu obrazka do pamiëci zaczynamy sië nad nim pastwiê -- rys. 6. Próby polegajâ na zastosowaniu tak zwanych faîszywych barw, czyli przyporzâdkowaniu odcieniom szaroôci róûnych kolorów, najpierw z widma barwnego, a potem metodami losowymi oraz czësto za pomocâ tak zwanej obróbki morfologicznej (rozrost, zamkniëcie, otwarcie itp.). Komputer pod kontrolâ czîowieka szuka odpowiedniego uîoûenia, kontrolujâc caîy czas parametry zdjëcia i po zmianie palety przeliczajâc bitmaping obrazu (remap) dla potrzeb dalszych przeksztaîceï (np. morfologicznych), poniewaû zmiana samej palety jest w wiëkszoôci wypadków "niewidoczna" dla obrazu i operujâcych na nim algorytmów. W programie Deluxe Paint moûemy to bardzo îatwo zaobserwowaê. Wystarczy w tym celu wgraê jakiô wielobarwny obrazek z figurami geometrycznymi i z przewagâ tîa w jakimô kolorze, np. niebieskim czy biaîym. Przez klikniëcie prawym przyciskiem myszy z prawej strony ekranu powyûej palety kolorów, czyli przez klikniëcie na tzw. zakrapiaczu (maîy prostokâcik w wiëkszym), moûemy wywoîaê "czytanie" koloru tîa. Teraz wystarczy tylko "dziabnâê" w jakiô punkt ekranu i program przyjmie kolor tîa, czyli kolor "przezroczysty" z barwy tego wîaônie punktu. Teraz przypuôêmy, ûe nasz obrazek jest 8-kolorowy (kolor tîa + 7 kolorów "piszâcych"). Po wyciëciu kawaîka obrazka (brush) moûemy zaobserwowaê "obrëbianie" zadanym kolorem bâdú "strzyûenie" naokoîo wszystkich obszarów z wyjâtkiem koloru tîa. Namiastkë przeksztaîceï morfologicznych uzyskamy przez stosowanie obwódki (rozrost) -- klawisz [o] na wyciëtym brushu lub strzyûenia (erozji) [Shift][o]. Ewentualnie ich sekwecji, dajâcych otwarcie i zamkniëcie. Teraz zgodnie z teoriâ upodobniamy czëôê kolorów do barwy tîa. Moûemy to zrobiê, wywoîujâc paletë przez naciôniëcie klawisza [p] i manipulujâc suwakami. Po tym zabiegu z siedmiu róûnych kolorów pozostaî tylko, powiedzmy, czerwony. Reszta przybraîa kolor tîa. Teraz znów moûemy spróbowaê np. erozji przez [Shift][o]. I, niestety, zgodnie z przewidywaniami nie zmniejszajâ sië jedynie figury w kolorze czerwonym, lecz caîe pîaszczyzny, takûe z faîszywym kolorem tîa! Co zatem zrobiê, ûeby przebiegaîo to poprawnie? Naleûy "przemapowaê" caîy obrazek. Robimy to nie przez -- jak moûna by sâdziê -- uûycie opcji REMAP z menu COLOR, poniewaû ta opcja, owszem, "mapuje", lecz w sposób upodobniajâcy nowo wgrany obrazek czy brush do 'zastanej' palety. Moûna to zrobiê dwiema metodami. Trwaîâ i nietrwaîâ. Trwaîa metoda polega na wywoîaniu z menu opcji SCREEN FORMAT, a potem zmniejszeniu liczby kolorów z 8 do 2. Teraz dopiero komputer, majâc 8 wczeôniejszych kolorów, w tym 7 ustawionych na jeden odcieï (tîo) i 1 czerwony, dokona podziaîu na tîo i farbë czerwonâ. Jest to wiëc przemiana trwaîa. Po wykonanym zabiegu moûemy znów wyciâê pozostaîe czerwone fragmenty i zastosowaê, teraz juû poprawnie, strzyûenie samych czerwonych obszarów. Nietrwaîa metoda polega na zastosowaniu szablonu, czyli zabezpieczeniu jednych kolorów i jednoczesnym wybraniu innych (STENCIL). Po takim zabiegu bëdzie moûliwe pobieranie tylko tych kolorów (RMB+brush), które nie zostaîy zaznaczone. Dla tych teû grup kolorów bëdzie moûna przeprowadzaê róûnego rodzaju operacje morfologiczne opisane wczeôniej. Spójrzmy na rysunek 7. Wreszcie sukces! Coô tam zaczyna byê widoczne. W tym wypadku byîa to prosta sprawa i daîo sië to zrobiê tylko za pomocâ barw, bez innych przeksztaîceï obrazka. W praktyce manipulacje odcieniami szaroôci i "barwnoôciâ" rysunku, z jednoczesnym zastosowaniem przeksztaîceï morfologicznych, nie zawsze sâ konieczne. Czasamim wystarcza manipulacja paletâ rysunku. Po "zîapaniu" kombinacji naleûy tylko wzmocniê litery, "podkrëciê" kontrast, osîabiê tîo, i napis jak na dîoni -- rysunek 8. Moûe trochë "wyûarty", ale da sië juû odczytaê i zrobiê odbitkë do dalszych analiz.