Fotografia cyfrowa i obróbka obrazu
3 rok astronomii, semestr letni 2012
Program zajęć
- Powstawanie zdjęcia w aparacie cyfrowym, jego obróbka i wyświetlanie na
monitorze
- Podstawowe pojęcia dot. obrazów cyfrowych
- Budowa i działanie aparatów cyfrowych
- Pisanie krótkich programów, wykonujących podstawowe operacje na
obrazach
- Nauka programu Gimp (w oparciu o książkę: "Gimp. Praktyczne projekty"
- Fotografia barwna w astronomii
Materiały do projektów w Gimpie dostepne są na stronie
http://gpp.gajdaw.pl/rozdz-01.html
Zajęcia pierwsze
Powstawanie obrazu w kamerze
Śledzenie promieni
Wykład Onur G. Guleryuz z Department
of Electrical and Computer Engineering, Polytechnic University,
Brooklyn, NY.
Przykładowe programy do tworzenia grafiki 3D
POV-Ray
(Persistence of Vision Raytracer)
Blender
Zajęcia drugie
Próbkowanie i kwantyzacja:
Reprezentacja kolorów w grafice komputerowej:
- Różne częstości światła widzialnego mają różne barwy
- Każdą z nich można uzyskać łącząc 3 kolory: czerwony, zielony i
niebieski (system RGB)
- RGB stosowany w telewizji, monitorach komputerowych
- Do druku stosuje się system odbiciowy
- Biały papier odbija wszystkie barwy, czarny pochłania wszystkie
- Barwniki pochłaniają wybrane barwy, odbijają pozostałe
- System CMY: barwniki cyan, magenta, yellow
- Suma C+M+Y teoretycznie daje barwę czarną, w praktyce nieładny,
ciemno-brązowy kolor
- Dlatego: CMYK (dodatkowo czarny barwnik)
- Obrazy kodowane w CMYK'u nieładnie wyglądają na monitorze;
kodowane w RGB nie są najlepsze do druku
- Barwa światła wpływa na kolory widziane na wydruku
Grafika rastrowa
- Obraz złożony z kropek (pikseli), zwany bitmapą
- Barwa każdego piksela kodowana na określonej ilości
bitów
- System indeksowany: każdy kolor ma swój numer
- System RGB i CMY: każdy kolor złożony jest z 3 barw
podstawowych, można zmieniać ich intensywność by uzyskać żądany kolor
wypadkowy
- Głębia koloru: ilość bitów użyta do reprezentacji kolory pojedynczego
piksela obrazu
- 8 bitów -- 256 kolorów, 16 bitów -- 65536 kolorów,
24 bity -- 16.8 milionów kolorów (tzw. true color)
przykłady
- Większa ilość bitów (np. 32) stosowana wtedy,
gdy obraz ma podlegać obróbce (np. wydobyciu niewidocznych szczegółów);
często jest to dodatkowy kanał alfa, opisujący przezroczystość
(0 -- pełna przezroczystość, 1 -- pełne tłumienie)
- W nabardziej rozbudowanej postaci możemy mieć np. obraz RGBA (RGB +
alfa)z 64 bitami na piksel (4*16)
- Typowy obraz RGB z 8 bitową głębia koloru ma 3*8=24 bity na piksel
- Typowy monitor LCD pozwla wyświelić obrazy z 18 bitami na piksel.
- Przy powiększaniu rozmiarów bitmapy jakość się
pogarsza
- Dithering
- Antialiasing
- Formaty rastrowe: GIF, PNG, JPEG, TIFF, RAW
- GIF (Graphics Interchange Format), 8 bitów, bezstratna
kompresja, system indeksowany (każdemu kolorowi z
palety 256 barw przypisano określony numer)
- Umożliwia animację, kiepsko odwzorowuje barwy
- Tworzenie GIFów kiedyś wymagało opłat licencyjnych, dlatego stworzono
format zastępczy: PNG (Partable Network Graphics, wymawiaj:ping)
- PNG koduje obrazy z bezstratną kompresją, 1,2,4,8 i 16 bitów głębi
koloru
- JPEG (Joint Photographic Experts Group)
- Zaletą jest 24 bitowe kodowanie oraz kompresja z
utratą danych (im gorsza jakość, tym mniejszy
plik wynikowy; w praktyce do wyświetlania na ekranie
stosuje się parametr jakości 75%)
- Plik po kompresji JPEG zmniejsza rozmiary o rząd wielkości
w stosunku do PNG
(porównanie
jakości obrazów PNG i JPEG)
- UWAGA: edycję zdjęcia lepiej wykonywać na formatach z bezstratną
kompresją, gdyż w czasie obróbka JPEG'a jest on wielokrotnie
rozkompresowywany i ponownie skompresowywany, na każdym etapie tracąc
informację
- JPEG może zapisać kolory w systemie RGB lub CMYK
- TIFF (Tagged Image File Format), stosowany w profesjonalnych programach
graficznych
- Specyfikacja zawiera wiele różnych odmian, czasem są kłopoty z
przenośnością obrazów
- Potrafi zapisać 16 bitów na piksel
- FITS (Flexible Image Transport System)
- RAW zawiera surowe dane z sensora obrazu, nie przetworzone przez
procesor w aparacie fotograficznym
- Duże rozmiary pliku, brak kompresji, często większy zakres dynamiczny
(głebia koloru 10 lub 12 bitów, zamiast 8 bitów, możliwych do zapisania
w JPEG)
- Każdy producent ma swój format RAW, zmieniając go często przy
wprowadzaniu nowych modeli
- dcraw -- program o otwartym źródle czytający format RAW kilkuste modeli
aparatów cyfrowych
Grafika wektorowa
- Obraz złożony z wektorów (odcinek kodują
współrzędne początku, końca i barwa)
- Okrąg: współrzędne środka, promień i barwa
- Grafikę wektorową można przeskalowywać (oraz
deformować) bez utraty jakości
- Rysunek w formacie wektorowym zajmuje znacznie mniej
miejsca, niż w postaci bitmapy, ale zdjęcia lepiej zapisywać jako
bitmapy
- Programy pracujące z bitmapami często nazywają się
malarskimi (np. PaintShopPro), grafiką wektorową --- rysunkowymi
(np. CorelDraw)
Zajęcia trzecie
Podstawowe operacje na zdjęciach: obrót, odbicie lustrzane, histogram.
Utwórz nową macierz o rozmiarach 100 x 100, zawierającą same zera.
A=zeros(100,100);
Taka macierz nie jest zbyt wygodna do przechowywania obrazów, bo jej
elementy są w ogólnym przypadku typu rzeczywistego (double). Zmienimy je na
typ unsigned 8 bit integer:
A1=uint8(A);
Teraz macierz opisuje obraz w postaci bitmapy: kwadrat o boku 100
pikseli. Wartość każdego piksela wynosi 0, co odpowiada kolorowi czarnemu.
Pozostałe odcienie szarości kodowane są na liczbach z zakresu 0..255, gdzie
255 to biały.
Podobną operacje wykonuje specjalna funkcja mat2gray
, która
w naszym przypadku można użyć tak:
A1=mat2gray(zeros(100,100));
Zobaczmy nasz kwadrat:
imshow(A1);
Zmieńmy jego kolor na biały:
for i=1:100
for j=1:100
A2(i,j)=A1(i,j)+255;
end
end
i zobaczmy wynik:
imshow(A2);
Teraz zmieńmy jego kolor na szary nadając pikselom wartość w połowie zakresu
0-255:
for i=1:100
for j=1:100
A3(i,j)=A1(i,j)+125;
end
end
i zobaczmy wynik:
imshow(A3);
Nadajmy teraz naszemu kwadratowi gradient koloru tak, by piksel o
współrzędnych (1,1) był czarny (wartość 0), a piksel (100,100) był prawie
biały (wartość 200):
for i=1:100
for j=1:100
A4(i,j)=A1(i,j)+i+j;
end
end
Spróbujmy teraz zamienić miejscami najciemniejszy róg z najjaśniejszym:
for i=1:100
for j=1:100
A5(101-i,101-j)=A4(i,j);
end
end
Odpowiada to obrotowi obrazu o kąt 180 stopni.
By pokolorować nasz kwadrat należy zapisać go w trzech warstwach o kolorach
podstawowych: czerwonym (R), zielonym (G) i niebieskim (B). Każda z warstw
na ogół też jest kodowana w postaci liczb z zakresu 0..255 (odpowiada to
łącznie 3*8=24 bitom; 2^24 to ok. 16.8 milionów kolorów).
W Scilabie można definiowac tzw. hipermacierze, które maja więcej niż dwa
wymiary:
B=uint8(zeros(100,100,3);
imshow(B);
Suma 3 kanałów: R, G, B wynosi w tej hipermacierzy 0, zatem kwadrat jest
czarny. Zmieńmy teraz wartość kanału czerwonego, R z 0 na 255:
for i=1:100
for j=1:100
B(i,j,1)=B(i,j,1)+255;
end
end
Kwadrat zmienił kolor na czerwony.
Pytanie: jaki kolor uzyskamy, jeśli zmienimy wartość kanału zielonego
z 0 na 255?
Sprawdźmy to:
for i=1:100
for j=1:100
B(i,j,2)=B(i,j,2)+255;
end
end
Niech teraz każdy sam zmieni wartość ostatniego kanału, niebieskiego,
z 0 na 255. Jaki kolor wypadkowy uzyskamy?
Do dalszych operacji na obrazach wykorzystamy już konkretne zdjęcie.
Do katalogu roboczego kopiujemy plik lena.png.
By go wczytać użyjemy funkcji imread:
lena1=imread('lena.png');
Sprawdzamy rozmiary macierzy lena:
size(lena1)
Jak widać, jest to hipermacierz o rozmiarach 512x512x3 co sugeruje, że
obraz lena.png jest obrazem kolorowym. Sprawdźmy to:
imshow(lena1);
By ułatwić sobie dalze operacje, zamieniamy obraz kolorowy na
czarno-biały:
lena2=rgb2gray(lena1);
imshow(lena2);
Dokonajmy teraz odbicia lena2 lustrzanego względem linii pionowej
(uwaga: operacja ta może zająć trochę czasu, trzeba cierpliwie poczekac na
jej zakończenie).
for i=1:512
for j=1:512
lena3(i,513-j)=lena2(i,j);
end
end
Teraz każdy samodzielnie niech dokona odbicia lustrzanego lena2
względem linii poziomej, zapisując wynik jako lena4.
Zobaczmy teraz jak zmieni obraz transpozycja macierzy A4. By przyspieszyć
te operacje posłużymy się wewnętrznym mechanizmem Scilaba do transponowania
macierzy:
lena5=lena2';
Wniosek: transpozycja odpowiada obrotowi o 270 stopni (zgodnie z kierunkiem
ruchu wskazówek zegara).
- Histogram w Scilabie
- Gimp
- Histogram w Gimpie
-
Zajęcia czwarte (2010-03-09)
Ciekawostka na początek
Przykład cyfrowego retuszu zdjęcia i do czego to może doprowadzić:
World Press Photo odbiera nagrodę za
manipulację
Organizacja kolekcji zdjęć cyfrowych
- Nazwy plików: aparat cyfrowy z reguły nadaje im nazwy w rodzaju
DSCFxxxx.JPG lub IMGxxxx.JPG, gdzie xxxx to kolejny numer. Zazwyczaj po
osiągnięciu numeru 9999 rozpoczyna się nowy cykl, od numeru 1.
- W kolekcji zdjęć każdy plik musi mieć unikalny numer. Jeśli zdjęcia
wykonuje kilka osób, różnymi aparatami, wówczas ich nazwy nie powinny się
powtarzać, a kolejność numerowania być zgodna z upływem czasu
- Synchronizacja zegarów w aparatach: przed wydarzeniem fotografowie
swoimi aparatami robią zdjęcie tego samego zegara z sekundnikiem
- Przykład nazywania plików: 2010-03-09++16-05-03.jpg Do zmiany nazw
plików JPG może posłużyć np. skrypt iRename, który
korzysta z informacji zapisanych w nagłówku exif formatu jpeg
- EXIF format
(EXchangeable Image File Format), jego zawartość może
być wyświetlona przy pomocu programu exif; do jego edycji może
posłużyc program jhead
- Nagłówek EXIF może zawierać miniaturkę zdjęcia (tzw. thumbnail); ważne,
by program do obróbki JPEGów uaktualniał te miniaturki po wykonaniu np.
obrotu (nie wszystkie to robią)
Tagowanie zdjęć, metadane
Tagi (słowa kluczowe) są używane do zapisu informacji
o zdjęciach (miejsce, ludzie, wydarzenia itp) w celu sklasyfikowania ich
i umożliwienia przeszukiwania.
-
IPTC (International Press Telecommunications Council),
najpopularniejszy wśród fotografów, ogólnie przyjety standard
- EXIF (stworzony przez Japan Electronic Industries Development
Association), w części opisującej zdjęcie zawiera podobne informacje
jak IPTC, może zawierać dane geolokacyjne (niektóre aparaty cyfrowe
zapisują współrzędne z GPS)
- XMP (Extensible Metadat
a Platform) stworzony przez Adobe, rzadko używany
w aparatach cyfrowych
Ćwiczenia z Gimpem, c.d.
Proszę wykonać ćwiczenia w rozdziale drugim.
Zajęcia piąte (2010-03-16)
Przydatne linki
Retouching of
astronomical data
Zajęcia n-te
Jak komponować zdjęcia
Zajęcia m-te
Samouczek
stosowania szybkiej maski
Selektywne kolorowanie fotografii
Redukcja czerwonych oczu
Tworzenie kolorowych zdjęć w astronomii
Czym jest kolor? Przykłady
złudzeń chromatycznych.
Data ostatniej aktualizacji: 2013-09-18