Czy przydatny byłby algorytm demozaiczny dla czerni i bieli?

11

Biorąc pod uwagę, że głównym celem demozaikowania jest jak najdokładniejsze odtworzenie kolorów, czy byłaby jakaś korzyść z algorytmu demozaicznego „tylko czarno-białe”? To znaczy, zamiast najpierw odzyskać kolor, a następnie przekonwertować czarno-biały, czy lepiej byłoby przekonwertować plik RAW bezpośrednio na czarno-biały?

Szczególnie interesuje mnie jakość obrazu (np. Zakres dynamiczny i ostrość). W pokrewnej notatce, które popularne algorytmy demosicing są najbardziej podatne na konwersję czarno-białą?

Lars Kotthoff
źródło
2
Kolor jest nieodłącznym czynnikiem obrazu RAW utworzonego z czujnika bayer kolorów. Problem z konwersją do skali szarości polega na tym, że masz luminancję tylko dla jednego określonego koloru na danym pikselu. Tak naprawdę nie ma znaczenia, czy traktujesz każdy piksel jako wartość luminancji, czy traktujesz go jako wartość koloru, każdy piksel reprezentuje jedynie około 1/3 całkowitej luminancji, która padła na piksel w momencie ekspozycji. „Demosykulacja” jest naprawdę niepotrzebna w przypadku obrazów w skali szarości, jednak aby uzyskać idealne obrazy w skali szarości, chciałbyś użyć czujnika w skali szarości ... bez bayera!
jrista
1
Jeśli chodzi o to, które algorytmy demozaikowania są idealne do konwersji czarno-białej przy użyciu kolorowej kamery ... Powiedziałbym, że najprostsza forma, standardowa interpolacja quada. Wiele innych bardziej zaawansowanych algorytmów odkażania zaprojektowano w celu zminimalizowania mory kolorów i innych artefaktów związanych z kolorem. Jeśli zależy Ci tylko na czarno-białym, wówczas standardowa interpolacja 2x2 pikseli zachowa najwięcej szczegółów.
jrista
2
@ jrista Nie jestem pewien, dlaczego naiwna interpolacja zachowałaby więcej szczegółów niż jeden z bardziej zaawansowanych algorytmów, które próbują rozróżnić zmiany jasności i intensywności. W każdym przypadku artefakty kolorów mogą pojawiać się na obrazach czarno-białych, w zależności od sposobu konwersji.
Matt Grum,
1
Cóż, chyba bazuję na AHDD, który ma tendencję do łagodzenia szczegółów. Przynajmniej implementacja w Lightroom daje nieco łagodniejsze wyniki niż algorytm używany przez Canon DPP, który daje bardzo wyraźne, ostre wyniki z prostszego algorytmu demozaikacji (choć chyba nie tak prosty jak twój podstawowy 2x2.)
jrista
„Porównanie metod demozaikacji kolorów” (Olivier Losson, Ludovic Macaire, Yanqin Yang) zawiera wiele szczegółów na temat różnych algorytmów demozaiki. Nie chodzi tylko o dekodowanie koloru, lepsze algorytmy uwzględniają wszystkie otaczające informacje, aby uzyskać najlepsze wyniki dla każdego piksela. Nie jestem przekonany, że dedykowany dekoder w skali szarości mógłby działać lepiej.
Mark Ransom,

Odpowiedzi:

8

Nie ma możliwości przekonwertowania pliku RAW bezpośrednio na czarno-biały bez uprzedniego odzyskania koloru, chyba że konwerter pobiera tylko jeden zestaw pikseli R, G, B do wytworzenia obrazu. Takie podejście spowodowałoby znaczną utratę rozdzielczości.

Aby nie stracić rozdzielczości podczas konwersji do czerni i bieli, musisz użyć wszystkich pikseli RG i B, co domyślnie oznacza, że ​​należy wykonać obliczenia kolorów, w którym to momencie możesz równie dobrze skorzystać z jednego z zaawansowanych algorytmów odwzorowywania kolorów, a następnie przekonwertować wynik w czerni i bieli.

Matt Grum
źródło
1
zmniejszenie rozdzielczości o połowę bez średniej ważonej quadów poprzez wyodrębnienie jednego koloru nie byłoby oczekiwanym obrazem w skali szarości, podobnie jak nałożenie zielonego, czerwonego lub niebieskiego filtra na aparat monochromatyczny. I pytanie filozoficzne: podzielenie każdej osi przez 2, zmniejszenie liczby Mp o 4. Nazwałbym to połową rozdzielczości. Ale wydaje się, że nazywasz sqrt (2) na oś / 2 Mp „pół rozdzielczości”. Która definicja jest poprawna technicznie? Jeśli rozdzielczość jest zdolnością do rozwiązania, to szerokość / 2 i wysokość / 2 to połowa rozdzielczości w systemie 2D, w którym chcesz zachować niezmienność rotacyjną?
Michael Nielsen,
rozszerzenie mojego poglądu na rozdzielczość Myślę, że Mp nie jest rezolucją, to marketingowy numer fotograficzny. Jako inżynier przetwarzania obrazu rozdzielczość jest podawana jako w X h.
Michael Nielsen,
@MichaelNielsen Jaki „oczekiwany obraz w skali szarości”? Istnieje wiele różnych metod konwersji na skalę szarości, pytanie nie określało jednakowego podejścia do ważenia. Po drugie, gdybyś miał detektor liniowy i zmniejszył o połowę liczbę próbek, moc rozdzielcza, tj. Maksymalna ilość detali detekcji zmniejszyłaby się o połowę, nie powiedziałbyś, że zmniejszył się on o współczynnik pierwiastka 2. Z tego wynika, że jeśli masz pole 2D detektorów (takie jak czujnik obrazu) i zmniejszysz o połowę liczbę próbek w obu kierunkach, pozostawiając jedną czwartą, powiedziałbyś, że rozdzielczość została zmniejszona
czterokrotnie
jeśli zmniejszysz o połowę tylko oś x lub y, będziesz mieć różne rozdzielczości w każdym kierunku, co pokona możliwość policzenia całkowitej rozdzielczości pod względem Mp i obliczenia jednego współczynnika „/ 2 rozdzielczość”. Ofc. Obiektywy też nie mają jednakowej rozdzielczości, ale producenci czujników z dumą ogłaszają, że obecnie ich piksele są kwadratowe i kwadratowe, co zapewnia równą rozdzielczość w obu kierunkach, co oznacza rozdzielczość 640x = 480y. Zobacz, jak sama liczba pikseli nic nie znaczy. rozdzielczość 640 jest taką samą rozdzielczością jak 480.
Michael Nielsen
2
Skala szarości: Nie powiedziałem, że ma taką samą wagę. Wiem, że istnieje wiele różnych wersji w skali szarości, ale mogę się założyć, że R, G lub B nie są jedną z oczekiwanych przez OP. Najbardziej prawdopodobna jest wersja 0,11 * b + 0,59 * g + .3 * r.
Michael Nielsen
8

Potrzebujesz algorytmu demosaic, nawet jeśli konwertujesz obraz na czarno-biały.

Powód tego jest dość prosty - w przeciwnym razie można uzyskać wszędzie subpiksele. Musisz zdać sobie sprawę, że obraz zarejestrowany przez czujnik jest dość nieuporządkowany. Rzućmy okiem na próbkę z Wikipedii :

demozaikacja

Teraz wyobraź sobie, że nie przeprowadzamy żadnych zmian ustawień i po prostu przekształcamy RAW w skalę szarości:

skala szarości

Cóż ... widzisz czarne dziury? Czerwone piksele nie zarejestrowały niczego w tle.

Porównajmy to teraz z obrazem w formacie odszyfrowanym przekonwertowanym na skalę szarości (po lewej):

normalny vs zepsuty

Zasadniczo tracisz szczegóły, ale także tracisz wiele artefaktów, które sprawiają, że obraz jest raczej nie do zniesienia. Pomijanie obrazu przy pomniejszaniu również traci duży kontrast ze względu na sposób wykonania konwersji czarno-białej. Wreszcie odcienie kolorów pomiędzy kolorami podstawowymi mogą być reprezentowane w dość nieoczekiwany sposób, podczas gdy duże powierzchnie czerwieni i niebieskiego będą puste 3/4.

Wiem, że jest to uproszczenie i możesz dążyć do stworzenia algorytmu, który jest po prostu: bardziej wydajny w konwersji RAW do czarno-białej, ale mam na myśli, że:

Aby wygenerować prawidłowe odcienie szarości na zdjęciu czarno-białym, potrzebujesz obliczonego obrazu kolorowego.

Dobrym sposobem na robienie zdjęć czarno-białych jest całkowite usunięcie tablicy filtrów kolorów - jak to zrobiła Leica w Monochromie - a nie zmiana konwersji RAW. W przeciwnym razie otrzymasz artefakty lub fałszywe odcienie szarości lub zmniejszysz rozdzielczość lub wszystkie z nich.

Dodaj do tego fakt, że konwersja RAW-> Bayer-> B&W daje o wiele więcej opcji ulepszania i edytowania obrazu, a masz całkiem doskonałe rozwiązanie, które można obalić tylko dzięki dedykowanej konstrukcji czujnika. Dlatego nie widzisz dedykowanych konwerterów czarno-białych RAW, które nie popadłyby w demosykację gdzieś w tym procesie.

MarcinWolny
źródło
1

Kamery z wizją maszynową z filtrami Bayera mogą bezpośrednio wyświetlać obrazy w skali szarości, ale robi to poprzez demaskowanie, konwersję do YUV i wysyłanie tylko kanału V (tych, których zwykle używam). Gdyby mieli lepszy sposób na ominięcie tej rekonstrukcji kolorów, myślę, że tak, ponieważ ciągle przesuwają liczbę klatek na sekundę (typowa kamera, której używam, działa na przykład z prędkością 100 klatek na sekundę).

Gdyby zignorował demosikowanie oparte na kolorach, mogłoby to zmniejszyć o połowę rozdzielczość i średnią ważoną każdego kwadratu 2x2, ale jeśli chcesz uzyskać pełną rozdzielczość, lepiej jest użyć normalnego algorytmu usuwania koloru, który próbuje lepiej zachować krawędzie. Jeśli wiemy, że chcemy w skali szarości, od samego początku otrzymujemy kamerę monochromatyczną, stukamy w filtr kolorów, jeśli szukamy określonego koloru, ponieważ ta konfiguracja jest znacznie lepsza pod względem jakości obrazu, zmniejszając potrzebę nadpróbkowania rozdzielczości, co z kolei pozwala zastosowanie szybkiego czujnika o niskiej rozdzielczości z większymi pikselami, co z kolei daje jeszcze lepszy obraz.

Michael Nielsen
źródło
Napisałeś: „konwersja na YUV i wysyłanie tylko kanału V” Z pewnością masz na myśli wysyłanie kanału Y, ponieważ Y jest kanałem luminancji.
TopCat
1

Wpływ filtrów kolorów na każdy dołek pikselowy w warstwie Bayera jest taki sam, jak w przypadku filmowania czarno-białego za pomocą filtrów kolorów na obiektywie: zmienia to zależność poziomów szarości różnych kolorów w fotografowanej scenie. Aby uzyskać dokładny poziom luminancji dla wszystkich kolorów w scenie, sygnały z każdego piksela muszą zostać usunięte. Jak wspomnieli inni, czujnik bez warstwy Bayera dałby obraz monochromatyczny, który nie musi być demoskowany. Powinno to zapewnić lepszą ostrość obrazu, jeśli krąg pomieszania z obiektywem jest równy lub mniejszy niż szerokość każdego piksela.

W praktyce zauważyłem kilka rzeczy przekształcających pliki RAW w monochromatyczne za pomocą programu Canon Photo Digital Professional (DPP).

  1. Regulacja balansu bieli może wpływać na zmianę ogólnej postrzeganej luminancji w taki sam sposób jak regulacja kontrastu. Jako taki może być użyty do precyzyjnego dostrojenia kontrastu.
  2. Balans bieli wpływa również na względną jasność różnych kolorów w scenie. Można go użyć do precyzyjnego dostrojenia efektów filtrów „Pomarańczowy”, „Żółty”, „Czerwony” itp. Wydaje się, że najbardziej wpływa to na kolor czerwony i jest znacznie ciemniejszy w 2500K niż w 10000K. Zaskakujące, przynajmniej dla mnie, jest to, że odcienie niebieskiego nie pokazują odwrotności.
  3. Ponieważ dla wszystkich praktycznych celów na zdjęciu czarno-białym nie ma szumu chrominancji, można go pozostawić na „0”.
  4. Narzędzie wyostrzania maski daje znacznie większą kontrolę nad ostrością niż prostszy suwak „Ostrość”. Zwłaszcza jeśli na obrazie jest kilka „ciepłych” lub „gorących” pikseli, możesz zwiększyć ogólną ostrość bez ich podkreślania.

Poniżej znajdują się dwie wersje tej samej ekspozycji zarejestrowane na Canonie 7D z obiektywem EF 70-200 mm f / 2.8L IS II i telekonwerterem Kenco C-AF 2X Teleplus Pro 300. Obraz został przycięty do 1000 x 1000 pikseli. Pierwszy został przekonwertowany przy użyciu ustawień w aparacie pokazanych poniżej. Drugi edytowano z ustawieniami pokazanymi na zrzucie ekranu. Oprócz zakładki RAW zastosowano ustawienie 2 redukcji luminancji, podobnie jak wartość aberracji chromatycznej 99.

Księżyc - bez edycji

Informacje o kamerze

Moon - zredagowane

Ustawienia

Michael C.
źródło
0

Zaproponowałbym taki algorytm (zakłada, że ​​twój cel jest biały i ma stałą temperaturę barwową):

  • Demozaiczny RAW Bayer na RGB
  • Próbkuj kolor do skali szarości
  • Utwórz LUT między wartościami surowego Bayera i wartościami w skali szarości (musiałoby to zostać wykonane raz na płaszczyznę kolorów RGGB lub RGB)
  • Użyj filtra LUT według koloru, aby przekształcić RAW Bayer bezpośrednio w skalę szarości bez filtrowania między pikselami

Teoretycznie zbliżyłoby się to do wyników prawdziwego czujnika monochromatycznego.

Elliot Woods
źródło