Jump to content

Narzędzie do automatycznego wyrównywania klatek animacji słonecznych


WielkiAtraktor
 Share

Recommended Posts

Służę pomocą ;)

To jest program „konsolowy”, tj. bez interfejsu graficznego. Należy go rozpakować w jakimś katalogu (powiedzmy, C:\Users\MojaNazwaUżytkownika\Documents). Potem uruchamiamy konsolę („wiersz polecenia”), np. Start->Uruchom->cmd.exe (albo w Windows 8: na ekranie startowym piszemy cmd.exe i wybieramy go). W konsoli przechodzimy do katalogu, gdzie rozpakowaliśmy program, tj. wydajemy polecenie i zatwierdzamy Enterem:

cd \Users\MojaNazwaUżytkownika\Documents

I teraz możemy wpisać polecenia z pierwszego posta, np.:

imgalt c:\astro\animacja1

(jeśli klatki animacji są właśnie w c:\astro\animacja1). Jak pisałem, program wyszukuje wszystkie BMP w podanym katalogu, więc jeśli mamy tam coś więcej, lepiej stworzyć najpierw osobny katalog i w nim umieścić same interesujące nas klatki. (Potem zrobię to jakoś wygodniej).

Edited by WielkiAtraktor
  • Like 4
Link to comment
Share on other sites

Super sprawa :) Ja własnie bawię się podobnym algorytmem, a nie wiedziałem, że się to tak nazywa :) Mam jednak problemy z użyciem FFT, bo nie wiedzieć czemu działa bardzo wolno a do tego liczy głupoty (samo FFT jest dobre). Zaimplementowałem bez FFT i wtedy działa poprawnie (ale długo :) ). Także bardzo bym się ucieszył z kodu źródłowego :) W czym piszesz?

Ja miałem taki pomysł, żeby zrobić śledzenie obiektów (samoloty, ISS) teleskopem na moncie GOTO z kamerą. Tutaj bardzo liczy się szybkość programu, bo to analiza na żywo.

Link to comment
Share on other sites

Napisane w C++. Chyba już jutro wrzucę, tylko muszę makefiles przygotować. Najbliższy cel to przyspieszenie i paralelizacja tego, bo na razie mam ok. 2 s na 1,3-megapikselową klatkę (1 wątek na Core i5-3570K).

 

Ale do śledzenia samolotów itp., gdzie obiekt pomiędzy klatkami przesuwa się nieznacznie, znacznie prostsza i szybsza będzie metoda „minimalnej sumy różnic bloków” (testowałem to kiedyś, jest błyskawiczne). Coś jak opisane na początku tego dokumentu: http://image.ing.bth.se/ipl-bth/siamak.khatibi/computerVisionBTH10Summer/papers/BlockMatchingAlgorithmsForMotionEstimation.pdf

Link to comment
Share on other sites

Super, też piszę w C++. Dzięki, poczytam o tej metodzie. Znalazłem jeszcze coś takiego: https://www.par.pl/pomiary/przetwarzanie-sygnalow/384-szybki-algorytm-dopasowania-obrazow-dla-potrzeb-fuzji-w-czasie-rzeczywistym.html. Wydaje się banalne do napisania, ale wcale nie wygląda mi na szybkie (złożoność n^3), no chyba że można to jakoś prosto zoptymalizować.

Link to comment
Share on other sites

Tak, o tę filozofię chodzi. Zauważ, że jeśli na początku pozwolisz użytkownikowi wybrać myszką „punkt zakotwiczenia” (np. samolot), to wystarczy, jak pomiędzy kolejnymi klatkami będziesz porównywał te różnice kolumn/wierszy tylko w pewnym małym obszarze wokoło (np. 32x32, zależy od tego, jak szybko cel się przesuwa). Mam wrażenie, że np. AviStack używa dokładnie tego podejścia (w fazie frame alignment).

Link to comment
Share on other sites

Fajnie, że to napisałeś i dzielisz się.

Dawno już nie działałem na linii komend.

 

Próbowałem powalczyć na swoich plikach. Niestety coś robię źle - wynik jest "skaczący".

Czy możesz wrzucić animacje z plików, które Ci przesłałem?

Rozumiem, że składasz gif'a w GIMP'ie?

Link to comment
Share on other sites

Tak, składam w GIMPie. Otwieramy wszystkie wyrównane klatki przez File->Open as Layers..., potem można je wszystkie naraz przyciąć (zaznaczamy prostokąt i Image->Crop to selection), i pozostaje wyeksportować. Jak wybierzemy format GIF, będzie opcja eksportu jako animacji.

 

Część Twoich wyrównało dobrze, z tego co pamiętam z jedną lub dwoma mniejszymi się nie udało. Wyślij mi proszę mailem te, na których zawiodło, przyjrzę się wieczorem.

Link to comment
Share on other sites

Część Twoich wyrównało dobrze, z tego co pamiętam z jedną lub dwoma mniejszymi się nie udało. Wyślij mi proszę mailem te, na których zawiodło, przyjrzę się wieczorem.

 

Jestem łoś ;)

Teraz zajrzałem do katalogu programu - a tam pliki po wyrównaniu.

 

Świetne narzędzie! Dzięki! Polecam!

Link to comment
Share on other sites

Dodałem kod źródłowy w pierwszym poście.

 

 

 

Zeby te nitki nagrac zobaczyc to jakiego filtra trzeba uzyc i mozna wiedziec jakim sprzetem nagrany jest filmik?

 

W jakim srodowisku pisales program?

 

Filmik nagrany, jak wszystko u mnie, kamerką Point Grey Chameleon mono (ta akurat animacja w całej okazałości: http://astropolis.pl/topic/39586-slonce-w-h/page-21?do=findComment&comment=506713). Do protuberancji konieczny jest bardzo wąskopasmowy filtr (zwykle H-alfa). Nada się dowolny popularny teleskop słoneczny (Lunt, Coronado), ale szczegółowość jak w moim przykładzie wymaga apertury 90 mm; fabryczne teleskopy tej wielkości są kosztowne, dlatego zmajstrowałem przystawkę do zwykłego refraktora z nie aż tak wąskim filtrem: http://astropolis.pl/topic/41505-h-z-filtrami-omega-optical/

 

Do pisania używam zwykle Eclipse+CDT.

 

 

Jeszcze jeden przykład, animacja warpala (pomniejszona 2-krotnie):

 

przed:

 

unaligned.gif

 

po:

 

aligned.gif

 

Edited by WielkiAtraktor
  • Like 1
Link to comment
Share on other sites

Jesli ktoś nie lubi działać na linii komend to można prościej. Do kataogu gdzie mamy program można skopiować program pliki BMP. Po uruchomieniu automatycznie zalignuje pliki. Tak przynajmniej dzieje się w W7pro.

Edited by warpal
  • Like 1
Link to comment
Share on other sites

Zgadza się (tak będzie w każdej wersji Windows). Jeszcze jedna uwaga, gdy wpisujemy polecenie ręcznie i katalogi źródłowy/docelowy zawierają spacje, trzeba objąć to cudzysłowami, np.:

imgalt "c:\moje astro\2013 lipiec" --output-dir "c:\moje astro\2013 lipiec\wyrównane"
Link to comment
Share on other sites

fajne narzędzie, dzięki za podzielenie się ze światem :)

 

(mimo że dla moich obrazków akurat natrafia na problem w postaci śmieci na matrycy i czasem śledzi śmieci a czasem obraz :P)
anim.gif
no ale to już wina algorytmu a nie Atraktora, niestety dla mnie pozostają tylko algorytmy w których mogę wyznaczyć maską obszary "zakazane"

przy okazji, gdyby ktoś chciał skompilować to w starym booście, np. takim jak mam tu w ubuntu 10.10 to trzeba troszkę zmienić:

62c62
<                 std::string ext = dirIter->path().extension().string();
---
>                 std::string ext = dirIter->path().extension();
325c325
<         std::string newFileName = p.stem().string() + "_aligned" + p.extension().string();
---
>         std::string newFileName = p.stem() + "_aligned" + p.extension();
Link to comment
Share on other sites

(...) no ale to już wina algorytmu (...)

 

 

No chyba smieci na matrycy ;)

 

Przetestowałem także na powierzchni. Seria, której nie miałem kiedyś siły składać - a teraz wygląda całkiem nieźle:

spot_2014-03-11-1039_1116.gif

 

 

A prz okazji - wesołych i spokojnych Świąt Wielkiej Nocy Wszystkim!

Edited by warpal
  • Like 3
Link to comment
Share on other sites

W pierwszym poście zamieściłem nową wersję 0.2. Nie ma jeszcze tego dodatkowego wyrównywania, za to:

 

Zmiany:

 

- praca wielowątkowa

 

Kurcze, nowa wersja wywala mi taki komunikat:

imgalt.jpg

Link to comment
Share on other sites

W pierwszym poście jest już poprawiony imgalt.zip. Obecnie archiwum zawiera plik EXE i dwa pliki DLL, należy je rozpakować w tym samym katalogu.

 

(Uwaga techniczna: jakoś nie udało mi się na szybko doprowadzić do tego, żeby MinGW zbudował plik wykonywalny statycznie połączony z PThread. Jak to opanuję, w archiwum znów będzie tylko 1 plik EXE).

Link to comment
Share on other sites

W pierwszym poście zamieściłem wersję 0.3.

 

Zmiany:

 

- akceptuje pliki BMP mono lub kolorowe, 8- lub 24-bitowe; po wyrównaniu zostaną zapisane w takiej samej głębi kolorów

- naprawione zapisywanie BMP (czasem tworzone były niepoprawnej długości pliki, które IrfanView czy GIMP przyjmowały, ale Photoshop już nie)

 

Ponadto: dodatkowe uwagi o używaniu bez wiersza poleceń.

Link to comment
Share on other sites

W pierwszym poście nowa wersja 0.4. Zalecam pobranie z uwagi na ważną poprawkę.

 

 

Zmiany:

 

- obcinanie klatek wynikowych do największego wspólnego obszaru (jeśli chcemy dostać klatki powiększone do wspólnego obejmującego prostokąta jak przedtem, należy użyć opcji --no-crop)
- poprawiona translacja przy zapisie wyrównanych obrazów, powodowała chaotyczne 1-pikselowe skoki

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Our picks

    • Migracja Astropolis na nowy serwer - opinie
      Kilka dni temu mogliście przeczytać komunikat o wyłączeniu forum na dobę, co miało związek z migracją na nowy serwer. Tym razem nie przenosiłem Astropolis na większy i szybszy serwer - celem była redukcja dosyć wysokich kosztów (ok 17 tys rocznie za dedykowany serwer z administracją). Biorąc pod uwagę fakt, że płacę z własnej kieszeni, a forum jest organizacją w 100% non profit (nie przynosi żadnego dochodu), nie znalazłem w sobie uzasadnienia na dalsze akceptowanie tych kosztów.
        • Thanks
        • Like
      • 60 replies
    • Droga Mleczna w dwóch gigapikselach
      Zdjęcie jest mozaiką 110 kadrów, każdy po 4 minuty ekspozycji na ISO 400. Wykorzystałem dwa teleskopy Takahashi Epsilon 130D i dwa aparaty Nikon D810A zamocowane na montażu Losmandy G11 wynajętym na miejscu. Teleskopy były ustawione względem siebie pod lekkim kątem, aby umożliwić fotografowanie dwóch fragmentów mozaiki za jednym razem.
        • Love
        • Thanks
        • Like
      • 48 replies
    • Przelot ISS z ogniskowej 2350 mm
      Cześć, po kilku podejściach w końcu udało mi się odpowiednio przygotować cały sprzęt i nadążyć za ISS bez stracenia jej ani razu z pola widzenia. Wykorzystałem do tego montaż Rainbow RST-135, który posiada sprzętową możliwość śledzenia satelitów.
      Celestron Edge 9,25" + ZWO ASI183MM. Czas ekspozycji 6 ms na klatkę, końcowy film składa się z grup 40 klatek stackowanych, wyostrzanych i powiększonych 250%.
      W przyszłości chciałbym wrócić do tematu z kamerką ASI174MM, która z barlowem 2x da mi podobną skalę, ale 5-6 razy większą liczbę klatek na sekundę.
      Poniżej film z przelotu, na dole najlepsza klatka.
        • Love
        • Thanks
        • Like
      • 73 replies
    • Big Bang remnant - Ursa Major Arc or UMa Arc
      Tytuł nieco przekorny bo nie chodzi tu oczywiście o Wielki Wybuch ale ... zacznijmy od początku.
       
      W roku 1997 Peter McCullough używając eksperymentalnej kamery nagrał w paśmie Ha długą na 2 stopnie prostą linie przecinajacą niebo.
       
      Peter McCullough na konferencji pokazał fotografię Robertowi Benjamin i obaj byli pod wrażeniem - padło nawet stwierdzenie: “In astronomy, you never see perfectly straight lines in the sky,”
        • Love
        • Thanks
        • Like
      • 17 replies
    • Jeśli coś jest głupie, ale działa, to nie jest głupie - o nietypowych rozwiązaniach sprzętowych
      Sformułowanie, które można znaleźć w internetach jako jedno z "praw Murphy'ego" przyszło mi na myśl, gdy kolejny raz przeglądałem zdjęcia na telefonie z ostatniego zlotu, mając z tyłu głowy najgłośniejszy marsjański temat na forum. Do rzeczy - jakie macie (bardzo) nietypowe patenty na usprawnienie sprzętu astronomicznego bądź jakieś kreatywne improwizacje w razie awarii czy niezabrania jakiegoś elementu sprzętu  Obstawiam, że @HAMAL mógłby samodzielnie wypełnić treścią taki wątek.
        • Haha
        • Like
      • 43 replies
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.