Obecnie jestem zaangażowany w projekt dotyczący programowania czujnika obrazowania. Nasz czujnik emituje hałas, dlatego chcemy to poprawić. Ktoś inny z projektu wpadł na pomysł zrobienia „czarnego” obrazu, tj. Założenia pokrywki obiektywu i zrobienia zdjęcia, które ma być całe czarne. (Oczywiście nie jest to spowodowane szumem). W tym momencie podczas kolejnych zdjęć pobiera wartości pikseli z czarnego obrazu i odejmuje je od regularnie przechwytywanego obrazu.
Obraz wygląda lepiej i większość szumów została usunięta, jednak nie jestem przekonany, że jest to najlepsze podejście do usuwania szumów z powodu:
Zakres ustalonego obrazu wynosi [-172 194] (366 wartości), w porównaniu ze standardowym zakresem [0 255]. Po przerysowaniu zmienia się z powrotem na [0 255] i wygląda lepiej, jednak uważam, że jest to nieprawidłowe.
Powinienem wspomnieć, że nowe zdjęcie zostało zrobione w słabym świetle.
Czy ta metoda jest odpowiednia do usuwania hałasu? Dlaczego lub dlaczego nie?
źródło
Odpowiedzi:
Czarny obraz jest sumą ustalonego wzoru i ciemnego szumu (który najprawdopodobniej ma rozkład normalny, ponieważ zwykle powstaje na skutek bieżących fluktuacji). Chcesz odjąć stały wzór, ale nie ciemny szum - odjęcie losowego szumu od sygnału po prostu zwiększa ogólny szum, a tym samym obniża jakość sygnału.
Aby uzyskać dobre oszacowanie dla ustalonego wzoru, należy uchwycić znaczną liczbę ramek (powiedzmy 25, chociaż 100 oczywiście pozostawi tylko połowę szumu) i uśrednić je. Ponieważ ciemny szum jest (powinien być) nieskorelowany w czasie, uśrednia się, dzięki czemu masz ustalony niskoszumowy wzór, który możesz odjąć od swoich przyszłych obrazów i który nie zwiększy szumu na obrazie.
Pamiętaj, że ustalony wzór zwykle zależy od czasu ekspozycji (na przykład kamera CCD może gromadzić elektrony podczas operacji zmiany), dlatego będziesz musiał przeprowadzić kalibrację dla każdego czasu ekspozycji. Jeśli często zmieniasz czasy ekspozycji i jeśli jest to wykonalne, możesz skonfigurować eksperyment tak, aby rejestrował serię ciemnych ramek po każdym eksperymencie, co oznacza, że otrzymujesz kalibrację dla każdego eksperymentu.
Jeśli odejmiesz ciemną ramkę o niskim poziomie szumów (tj. Uśrednioną), otrzymasz pewne wartości ujemne (ponieważ ciemny szum występujący podczas akwizycji obrazu może mieć wartości ujemne), ale zasięg obrazu nie powinien znacznie wzrosnąć. Jeśli tak, oznacza to, że albo nie uśredniłeś wystarczającej ilości ciemnych ramek, albo że ustalony wzór zmienił się, ponieważ używasz innego czasu ekspozycji.
źródło
takie podejście jest prawidłowe i jest stosowane w niektórych wysokiej klasy aparatach: czujnik najpierw robi zdjęcie z zamkniętą migawką, a następnie odejmuje je do „prawdziwego” zdjęcia. Ma to dwie zalety:
Ta metoda może dawać różne wyniki dla różnych czasów ekspozycji.
Szum fotoniczny pozostaje nietknięty.
źródło
Myślę, że to zależy od używanego czujnika.
Możesz zrobić serię (np. 10000) zdjęć przy założonej osłonie obiektywu i porównać średnią / odchylenie standardowe dla każdego piksela. Jeśli to możliwe, możesz zrobić to samo dla jednolitego „jasnego” obrazu (bez prześwietlenia, tylko jednolita jasność).
Jeśli istnieją znaczące różnice między „ciemnymi środkami”, dobrym pomysłem jest odjęcie ciemnej średniej dla każdego piksela. Jeśli istnieją znaczące różnice między (jasna średnia - ciemna średnia) dla każdego piksela, dzielenie przez ten „średni biały obraz” może być również poprawą.
Ale naprawdę musisz zrobić te statystyki, aby dowiedzieć się, co ma sens.
źródło
Zwykle wartości ujemne należy obciąć do zera po odjęciu ciemnej ramki.
Dziwi mnie, że odejmowanie ciemnych ramek daje wartości -172. To znaczy, że:
Czy możesz publikować zdjęcia normalnej ramki, ciemnej ramki, a następnie odejmowanej wersji?
źródło
negative values should be truncated to zero when you subtract the dark frame
. Nie powinieneś tego robić, ponieważ uniemożliwi to wykonanie dobrej roboty w odszyfrowywaniu ciemnych obszarów obrazu. Lepiej jest zachować naturalny hałas, zanim naprawdę spróbujesz go usunąć.