imgalt - wyrównywanie zdjęć na potrzeby animacji poklatkowych

Wyrównywanie klatek z np. zdjęciami protuberancji słonecznych by ukazać ich zmiany w czasie na animacji

Fotografując Słońce za pomocą teleskopów słonecznych w paśmie H-alpha możemy uzyskać na zdjęciu ładnie widoczne protuberancje. Mając jedno zdjęcie robimy kilka i chcemy stworzyć animację ruchu protuberancji w czasie. Niestety natrafiamy na problem niewyrównanych względem siebie poszczególnych klatek. Na pomoc przyjść może aplikacja imgalt, która potrafi wyrównać względem siebie takie zdjęcia.

Instalacja imgalt

Aplikacja została opublikowana na astropolis.pl i stamtąd możemy pobrać najnowszą wersję dla MS Windows, czy źródła do skompilowania pod Linuksem.

Żeby skompilować aplikację pod Linuksem potrzebna będzie biblioteka boost. W przypadku dystrybucji z rodziny Debian/Ubuntu potrzebne będą pakiety takie jak libboost-dev, libboost-chrono-dev, libboost-system-dev i libboost-filesystem-dev. Mając zależności można aplikację skompilować poleceniem:

make -f Makefile.gcc

Po czym w katalogu powstanie binarka ./imgalt

W przypadku Windowsa pobieramy gotową aplikację, wrzucamy pliki do katalogu ze zdjęciami do wyrównania i odpalamy. Jako że jest to program konsolowy (bez graficznego GUI) możemy odpalić ją w terminalu i podać ścieżkę do katalogu, w którym znajdują się pliki (to chyba najszybciej pod Linuksem. Żeby otworzyć terminal w katalogu aplikacji pod Windowsem można wykorzystać Total Commandera, który ma taką opcję).

Jak to działa

Aplikacja szuka zdjęć (BMP, TIFF) w podanym katalogu (domyślnie w swoim) i próbuje je wyrównać względem siebie i zapisać pod nową nazwą. Pracując z aplikacją z poziomu terminala będziemy mogli podać inne ścieżki katalogów (źródłowego i docelowego), czy wyłączyć wyrównywanie podpikselowe, albo włączyć dodatkowe informacje o przebiegu procesu (zobacz ./imgalt --help).

Jeżeli proces się uda uzyskamy wyrównanie względem siebie zdjęcia, które następnie będzie można wykorzystać do zrobienia animowanego GIFa. Korzystając z konsolowej aplikacji convert z pakietu ImageMagick możemy zrobić to tak:

convert -delay 20 -loop 0 frame1.jpg frame2.jpg frame3.jpg result.gif

Znaczenie parametrów jest następujące:

convert -delay OPÓŹNIENIE_W_SEKUNDACH -loop 0 LISTA_PLIKÓW_WEJŚCIOWYCH NAZWA_PLIKU_WYNIKOWEGO.gif

Ja dość często robię animację z ruchem wstecznym tak by ciągłość była płynna (klatki w kolejności 1, 2, 3, 4, 3, 2).

blog comments powered by Disqus

Kategorie

Strony