Usuwanie odblasków z obrazu

17

Zastrzeżenie: NIE jestem w żaden sposób zaangażowany w przetwarzanie sygnałów. Po prostu bardzo ciekawy ...

Pytanie jest bardzo proste: czy możliwe jest zastosowanie przetwarzania obrazu do obrazu w celu usunięcia lub zmniejszenia olśnienia reflektorów?

Byłoby to zdjęcie takie jak to:
http://www.driversedguru.com/wp-content/gallery/jamie-gallery/Lots%20of%20Glare.jpg

Jeśli jest to możliwe, czy dostępna jest do tego biblioteka oprogramowania? Nie obchodzi mnie, który język, chcę tylko możliwości. Slash czy ktoś wie, czy są na ten temat aktualne badania?

BenCole
źródło
3
Czy to „odblask” czy „flara obiektywu”?
endolith
Słuszna uwaga. Powinienem wyjaśnić: jestem zainteresowany normalizacją poziomu światła na obrazie (choć konkretnie w samochodach). Zmniejsz więc punktową jasność / rozmycie reflektorów i zwiększ widoczność samych samochodów. Więc ... odblaski lub flary obiektywu, tak czy inaczej (tak sądzę).
BenCole,
Są sposoby na usunięcie takich rzeczy za pomocą dekonwolucji, zamiast zmniejszania ich jasności, ale nie jestem pewien
endolith
Wyobrażam sobie coś takiego: ftp.cfar.umd.edu/pub/aagrawal/Glare/AgrawalGlareLowRes.pdf z wyjątkiem tego, że jest nieco bardziej zaawansowany, ponieważ (1) redukuje olśnienie przy użyciu podobnych metod opisanych w tym artykule; następnie (2) usuwa rzeczywiste źródło światła z obrazu; oraz (3) [niewyraźne w tym kroku] ponownie zmniejsza olśnienie i poprawia obszar wokół źródła światła.
BenCole,
Cóż, ten przykład wymaga modyfikacji optyki aparatu przed zrobieniem zdjęcia
endolith

Odpowiedzi:

6

Problemem może być to, że gdy obecne są jasne światła, aparat użyje krótkiego czasu otwarcia migawki, aby zapobiec zbyt dużemu nasyceniu obrazu. Wszystkie szczegóły, które Cię interesują, znajdują się w kilku ostatnich bitach danych.

Nawet jeśli usuniesz odblaski, a następnie spróbujesz pociągnąć resztę obrazu w górę, poziom jest bardzo głośny. Na przykład, jeśli weźmiesz obraz i będziesz grać z poziomami, aby podciągnąć ciemniejsze sekcje i po prostu pozwolić, aby blask się przyciął, oto wynik:

Wersja „jaśniejsza”

Jeśli jest to w porządku dla dalszego przetwarzania (nie wiem, co masz na myśli), możesz być może usunąć odblaski, patrząc na rozkłady nasyconych pikseli i rozwinąć się w otaczające je „jarzenie”.

Lepszym rozwiązaniem (jeśli masz taką opcję) może być użycie kamery o dużym zakresie dynamiki, która ma nieliniową odpowiedź w pikselach, a także często 10 lub 12 bitów na piksel użytecznej rozdzielczości, co oznacza, że ​​możesz zachować 7 -8 bitów do ciemniejszych sekcji.

Martin Thompson
źródło
Słusznie. Dałeś mi jednak dobry kierunek, żeby zacząć, więc dziękuję!
BenCole,
Nie potrzebujesz kamery o dużym zakresie dynamiki. Wystarczy zrobić wiele zdjęć przy różnych poziomach ekspozycji. Kamery Canon można skonfigurować tak, aby robiły to automatycznie z oprogramowaniem układowym CHDK. chdk.wikia.com/wiki/Samples:_HDR
endolit
2
@endolith - Tak, nie potrzebujesz kamery HDR ... jeśli Twoja scena zmienia się wystarczająco wolno, możesz to zrobić w oprogramowaniu. Ale na powyższym zdjęciu wątpię - robię samochodowe systemy wizyjne, a 30 Hz to ledwie wystarczająco, nie chciałbym czekać na kilka klatek, aby uzyskać dane!
Martin Thompson
1
Czy możesz zrobić aktualizację obrazów CHDK? Zamiast czekać na kilka dyskretnych ramek, mają zakresy takie jak {frame1,2,3,4}, {frame2,3,4,5}, {frame3,4,5,6}, etc:? A może byłoby to zbyt wolne?
BenCole,
@BenCole: tak, to jest wykonalne przez pewien czas, ale nawet jedna dodatkowa rama opóźnienia byłaby zbyt duża w niektórych aplikacjach. W rzeczywistości zmiana sceny z jednej klatki na drugą oznaczałaby, że „HDR poprzez zestawianie kilku ekspozycji” nie zadziałałoby zbyt dobrze
Martin Thompson,