Światło w piksele. Jak działa kamera cyfrowa?

Milena Michalska
rakieciara blog by Milena Michalska
3 min readJan 21, 2023
For. Gian Luigi Perrella, flickr.com

Najprostszy aparat fotograficzny to kawałek specjalnego, światłoczułego papieru zamknięty w pudełku z dziurką. Licząc w specjalnych programach parametry otworu i odległość od filmu fotograficznego, umieszczając to proste urządzenie w odpowiednim miejscu, zabezpieczone przed warunkami atmosferycznymi i czekając kilka tygodni możemy otrzymać ciekawe obrazy słońca poruszającego się po nieboskłonie (dowiedziałam się tego z fantstycznego wideo Alicji Musiał o solarigrafi). Dużo bardziej skomplikowanym procesem, który szczególnie programistom może wydać się fascynujący, jest proces powstawania fotografii cyfrowej. Sama dopiero zagłębiam się w świat zamiany fotonów w piksele, więc będzie to podstawowy materiał, opisujący ten proces wysokopoziomowo i biorąc pod uwagę najpopularniejsze rozwiązania.

Budowa sensora

Zacznijmy od źródła danych — sensora optycznego aparatu. W środku telefonu, kamery czy kosmicznego teleskopu znajduje się matryca, na którą system soczewek i luster kieruje światło odbite od obiektów widocznych przed obiektywem. Jest to macierz milionów (na pewno kojarzycie megapiksele, mega — milion) elementów, które zamieniają światło w proporcjonalnie silny sygnał elektryczny.

Pojedynczy detektor to specjalny materiał półprzewodnikowy, czyli taki, który przewodzi napięcie elektryczne tylko, kiedy są spełnione odpowiednie warunki. Padający nań foton wytrąca elektron z powłoki atomu krzemu. Powstaje uporządkowany ruch elektronów, czyli przewodzenie prądu elektrycznego. Jest to ten sam proces co w ogniwach fotowoltaicznych (wideo z łatwą do zrozumienia animacją). Użyte materiały półprzewodnikowe i inne parametry detektorów są zależne od pożądanej czułości i spektrum światła, jakie chcemy wykrywać. Sensory różnią się też metodami pomiaru i przekazywania napięcia powstałego na detektorach (np. CMOS, CCD czy specjalne czujniki produkowane przez naukowców do instrumentów jak kosmiczny teleskop Jamesa Webba).

Filtr kolorowy

Każdy pojedynczy detektor (piksel) na światłoczułej matrycy zwraca wartość natężenia padającego nań światła, co umożliwia wyprodukowanie jedynie obrazka w skali szarości. Im więcej wykrytych fotonów, tym większe napięcie, więc punkt na obrazku będzie jaśniejszy, mniej światła — ciemniejszy. Aby rozszerzyć funkcjonalność sensora na obrazy kolorowe, na matrycę nałożony jest filtr barwny — do każdego piksela dociera tylko część fal, w odpowiednim kolorze.

Najpopularniejszym z takich filtrów jest filtr Bayera. U jego podstaw leży fizjologia ludzkiego oka, które jest bardziej wrażliwe na światło zielone, niż czerwone czy niebieskie, dlatego połowa wszystkich pikseli matrycy zwraca informacje o natężeniu światła zielonego. W trakcie późniejszego przetwarzania danych z sensora, dla każdego piksela szacujemy wartości pozostałych kanałów.

Filtr Bayera, Wikipedia

Cyfrowy format obrazów

Bitmapa, JPEG, PNG, formaty webowe, te wszystkie które otwarte przeglądarką obrazów wyświetlą nam kolorowe zdjęcie. Różnią się między innymi stopniem i sposobem kompresji, ale informacją w nich zawartą jest tablica pikseli zakodowanych w przestrzeni barwnej. W przypadku przestrzeni RGB. bardzo popularnej w ekranach i programach graficznych, piksel to wartości trzech kanałów — czerwonego, zielonego i niebieskiego. Z kombinacji maksymalnych wartości tych trzech kanałow powstaje biały, a przy zerowych wartościach — czarny.

Widoczny na matrycy filtr Bayera, Fot. B Negin, flickr.com

Demozaikowanie

Istnieje kilka podejść do debayeryzacji, demozaikowania, rekonstrukcji kolorów, czyli po prostu zamiany odczytów sensora z nałożonym filtrem, na w pełni kolorowy obraz RGB. Podstawową metodą na uzyskanie wartości trzech kanałów — czerwonego, niebieskiego i zielonego, jest Superpixel. To algorytm polegający na obliczaniu wartości nowego, trzykanałowego piksela na styku czterech jednokanałowych pikseli. Wadą tej metody jest pomniejszenie obrazu o dwa piksele w każdym wymiarze, ale przy milionach punkcików jest to zaniedbywalna strata.

Tworzenie kolorowych pixeli metodą Superpixel

W innych metodach wartości kanałów są średnią sąsiednich odczytów, bardziej zaawansowane algorytmy wykorzystują narzędzia matematyczne takie jak gradient (metoda VNG). W pracy naukowej Low Cost Edge Sensing for High Quality Demosaicking, którą znalazłam w temacie wysokiej jakości demozaikowania obrazów uchwyconych sensorem z filtrem Bayesa, porównywanych jest prawie 30 różnych algorytmów o różnej złozoności obliczeniowej, wykorzystujących metody numeryczne jak i sztuczną inteligencję.

Jeśli temat powstawania cyfrowych obrazów uważasz za ciekawy, serdecznie polecam mój tekst na blogu Innspace o przetwarzaniu danych z kosmicznych teleskopów.

--

--