Z notatnika optyka: USM

0
Bernard Piechal
31 Grudzień 2011
Artykuł na: 6-9 minut
Po krótkiej, świątecznej przerwie przyszła pora na kolejny odcinek cyklu "Z notatnika optyka". Tym razem o filtrze "unsharp mask" i wyostrzaniu. Zapraszamy do lektury.
Dlaczego to się nazywa "UNsharp mask"?
W ostatnim czasie pisałem trochę o rozdzielczości. Okazało się m.in., że współczesne aparaty cyfrowe są w tej dziedzinie dość ograniczone. A jednak, jeżeli ogląda się dobre cyfrowe zdjęcia, ten fakt wcale nie rzuca się w oczy. Przeciwnie, bardzo wiele zdjęć zrobionych przez fotografów-cyfrzarzy, którzy znają się na rzeczy, wygląda ostrzej niż wiele zdjęć na robionych na filmach podobnych formatów. To dlatego, że to, co nam się wydaje ostre, to niekoniecznie to, co rzeczywiście jest ostre. Jednym słowem można bardzo skutecznie oszukiwać. W dzisiejszym odcinku będzie o tym, jak działa najpopularniejszy chyba filtr wyostrzający zdjęcia. Od razu ostrzegam, że jest to kurs włażący w same podstawy działania filtra, ale z tego wyniknie jak ustawiać poszczególne jego parametry i czym grozi złe ustawienie każdego z nich.

Co nam się wydaje ostre
Mamy dwa obrazki przedstawiające jakąś krawędź:


Krawędź na drugim obrazku wydaje nam się troszkę ostrzejsza. Ale to tylko złudzenie. Na pierwszym obrazku granica pomiędzy jasnoszarym, a ciemnoszarym jest tak ostra, jak się tylko da - po prostu następuje skokowa zmiana koloru. Natomiast obrazek drugi powstał w ten sposób, że ostatni piksel jasnego obrazu trochę jeszcze rozjaśniłem, a pierwszy ciemny - przyciemniłem. I voila, od razu wydaje się ostrzej.

Działa to dlatego, że wrażenie ostrości nie zależy tylko od tego, jak płynne będzie przejście pomiędzy dwoma obszarami – jasnym i ciemnym, ale też od kontrastu pomiędzy jasnym i ciemnym. A więc, powiększając ten kontrast, choćby w małym obszarze, stwarzamy wrażenie większej ostrości.

To się wcale nie zaczęło na komputerze
A więc aby wyostrzyć zdjęcie, należy selektywnie podbić kontrast tylko na krawędziach. Tylko jak?

Metodę, która jest używana w niemal wszystkich programach do obróbki zdjęć, wymyślono właściwie w latach 30 XXw., a więc jakiś czas przed komputerami. Jest w pełni zgodna ze znaną zasadą pewnego radzieckiego teoretyka wynalazczości: jak czegoś się nie da zrobić w jeden sposób, spróbuj to zrobić dokładnie odwrotnie. Aby wyostrzyć należy... rozmyć. Najpierw z negatywu robiono pozytyw tych samych rozmiarów, który miał dwie cechy: był nisko kontrastowy i trochę nieostry. Potem precyzyjnie składano ten pozytyw z oryginalnym negatywem i z tego robiono odbitkę. Wychodziło mniej więcej coś takiego:


Złożenie negatywu z mniej kontrastowym pozytywem powodował spadek ogólnego kontrastu negatywu, więc odbitkę trzeba było zrobić na bardziej kontrastowym papierze. Ale, jako że pozytyw był bardziej nieostry od oryginalnego negatywu, kontrast krawędzi spadał znacznie mniej. W efekcie, po podniesieniu kontrastu papieru dostawano obraz, który miał ogólny kontrast taki jak poprzednio, ale z podniesionym kontrastem w obrębie krawędzi i drobnych detali. A taki obraz wydawał się ostrzejszy.

Jak to się robi na kompie
Komputer używa algorytmu bazującego w zasadzie na tej samej zasadzie. Ten algorytm nazywa się "Unsharp mask", czyli dosłownie tłumacząc "nieostra maska" i występuje chyba we wszystkich choć trochę zaawansowanych programach graficznych i nie tylko (występuje też na przykład w najpopularniejszym programie do obrabiania danych pomiarowych dla fizyków). Co toto robi?

Po pierwsze to bierze zdjęcie, które ma wyostrzyć i je rozmywa "rozmyciem gaussowskim" (wersje angielskie aplikują gaussian blur). I tu wchodzi pierwszy parametr do ustawienia: promień. To jest ten sam promień jaki jest używany w filtrze "rozmycie gaussowskie" i mówi jak odległe piksele będą uśredniane. Im większy promień, tym mocniej rozmyty zostanie obrazek.

Następnie tą rozmytą wersję odejmuje się od początkowego obrazka. Przy czym pisząc "odejmuje" dokładnie odejmowanie mam na myśli: od wartości składowej czerwonej obrazka początkowego odejmuje wartość składowej czerwonej obrazka rozmytego, podobnie z pozostałymi składowymi. W ten sposób powstaje taki śmieszny obraz samych krawędzi:


Ten, nazwijmy go roboczo obrazek różnicowy (ta nazwa nie jest żadną przyjętą nazwą, tylko moją radosną twórczością), to taki zbiór wartości (zarówno dodatnich jak i ujemnych), który pokazuje, o ile i w którą stronę rozmyta wersja różni się od oryginalnej. W następnym kroku mnoży się go przez liczbę, która zależy od tego, co wpiszemy w pole "wartość" (lub "amount") i dodaje do obrazu początkowego. Ponieważ po ciemnej stronie krawędzi obrazek różnicowy ma wartości ujemne, te piksele zostaną przyciemnione. Analogicznie, po jasnej stronie krawędzi piksele zostaną rozjaśnione. W efekcie kontrast na krawędzi zostanie powiększony, ergo krawędź zostanie wyostrzona.


Zwracam uwagę, że to, co narysowałem, przedstawia sytuację, w której użytkownik nieco przesadził z "wartością" i "promieniem". Powstają wtedy takie przestrzelenia - jasne obwódki wokół ciemnych obiektów. Narysowałem to po to, aby pokazać, który parametr na co wpływa. Nie jest to idealnie ścisła zależność, jednak ustawiając promień wpływamy przede wszystkim na to, jak szeroka będzie jasna obwódka. Natomiast wartość wpływa głównie na to, jak będzie jasna. Właściwie da się wartość ustawić tak, aby jasnych obwódek w ogóle nie było, ale tylko pod warunkiem, że nie ustawimy zbyt dużego promienia. Z drugiej strony promień nie może być zbyt mały, bo wtedy filtr przestaje działać w ogóle - obrazki rozmyty i początkowy przestają się różnić. Jako wartość początkową (do dalszych prób) polecałbym ustawić promień na mniej więcej tyle pikseli, ile zajmuje przejście od jasnego do ciemnego - a więc będą to zupełnie inne wartości, gdy wyostrzamy zdjęcia w rozdzielczościach do druku, a inne (dużo mniejsze), gdy wyostrzamy zdjęcia w rozdzielczościach ekranowych.

Próg
A właściwie tak to by wyglądało, gdybyśmy wartość ostatniego parametru ustawili na 0. Ten ostatni parametr to "próg" (po angielsku "threshold"). I jest to jedyny parametr, którego nie ma w tradycyjnej, ciemniowej wersji wyostrzania.

Jeżeli wartość "progu" ustawimy na coś większego od zera, to program będzie sprawdzał, piksel po pikselu jak duża jest różnica pomiędzy obrazkiem początkowym a wersją rozmytą. Jeżeli różnica w przypadku danego piksela jest większa, niż to, co użytkownik wybrał w polu "próg", to program zaaplikuje wyostrzanie tak, jak to opisałem powyżej. Natomiast jeżeli różnica jest mniejsza od wartości progowej, program z tym pikselem... nie zrobi nic - po wyostrzeniu ten piksel się nie zmieni. Inaczej mówiąc parametr "próg" wyłącza cały filtr wyostrzający dla obszarów, gdzie zmiany jasności czy koloru są nie dość szybkie. Celem istnienia tego parametru jest przeciwdziałanie skutkowi ubocznemu wyostrzania: wyostrzaniu i potęgowaniu szumu.

Jednak działanie progu samo zostawia skutki uboczne. Powoduje, że wprawdzie szum i ziarno nie są wyostrzane, ale w obrębie samej wyostrzonej krawędzi powstaje efekt rozdzielenia tonów. Ostatni piksel, który znajdzie się "poniżej progu" w ogóle nie zostanie zmieniony, ale następny zostanie już zmieniony bardzo. Gdzieś w połowie przejścia też będzie obszar, w którym piksele zostaną zakwalifikowane jako te, których nie należy zmieniać.


W efekcie, zamiast ostrzejszego ale płynnego przejścia od jasnego do ciemnego, dostaniemy krawędź przypominającą nieco mapę hipsometryczną. Przykład z życia:


To jest powiększony kawałek zdjęcia wyostrzonego z progiem ustawionym na zero. Ten sam kawałek wyostrzony z dokładnie identycznymi parametrami wartość i promień, ale z niezerowym progiem wygląda tak:


I można zobaczyć, jak ładnie pominięty przy wyostrzaniu został szum, oraz jakiego rodzaju artefakt powstał w zamian.

Za tydzień zapraszam na ostatni odcinek. Właściwie będzie to odcinek bonusowy, klasa będzie oglądać film.

Słowa kluczowe:
Komentarze
Więcej w kategorii: Poradniki
Wybierasz się na zasłużony urlop? Oto sprzętowe pomysły i praktyczne sztuczki, które warto rozważyć
Wybierasz się na zasłużony urlop? Oto sprzętowe pomysły i praktyczne sztuczki, które warto rozważyć
Letni sezon to czas podróży, odkrywania odległych miejsc i… fotografowania. Dlatego przygotowaliśmy kilka praktycznych porad oraz zestawienie przydatnych akcesoriów,...
3
0
Chcesz stać się lepszym fotografem? Unikaj tych 13 błędów [WIDEO]
Chcesz stać się lepszym fotografem? Unikaj tych 13 błędów [WIDEO]
Nigel Danson, uznany fotograf krajobrazu, powraca z kolejnym ciekawym poradnikiem. Tym razem naświetla 13 błędów, które trzeba wyeliminować, aby wskoczyć na wyższy...
23
0
Jak robić dobre portrety zwierząt?
Jak robić dobre portrety zwierząt?
Zastanawialiście się kiedyś jak powstają studyjne portrety naszych czworonożnych przyjaciół? Zajrzyjcie za kulisy pracy Vincenta Lagrange’a, który opiera na nich swoja...
30
4
Powiązane artykuły
Wczytaj więcej (16)