Jaki jest optymalny promień rozkładu gaussowskiego do określania koloru pikseli?


10

Wykorzystując rozkład gaussowski punktów na płaszczyźnie obrazu do obliczenia wartości piksela, jaki promień / odchylenie standardowe da najwięcej informacji na ostatecznym obrazie? Zbyt duży promień powoduje zamazanie obrazu, a zbyt mały promień powoduje pomijanie informacji mniejszych niż piksel, aby nie wpływał na końcowy obraz. Gdzie jest optymalny kompromis? Czy istnieje jedna odpowiedź na to pytanie lub czy istnieją okoliczności, w których może się ona różnić?

Myślę o tym w odniesieniu do raytracingu, ale wyobrażam sobie, że będzie to miało zastosowanie w równym stopniu do rzeczy takich jak zmniejszanie rozmiaru obrazu. Tam, gdzie odpowiedzi byłyby różne, interesuje mnie to, co ma zastosowanie podczas próbkowania ciągłej płaszczyzny obrazu, tak że położenia pikseli na większym obrazie nie można użyć do ustalenia optymalnego promienia.

Odpowiedzi:


7

Nie jestem pewien, czy to naprawdę optymalny promień - będzie to kwestia subiektywna w oparciu o wygląd obrazu. Jak mówisz, zbyt duży promień powoduje rozmycie, a zbyt mały promień powoduje aliasing.

Lubię ustawić sigma = 0,5 piksela, tak aby całkowity promień wynosił około 1,5 piksela (ponieważ Gaussian ma większość swojej masy w granicach ± ​​3 sigma swojej średniej). Z mojego doświadczenia wynika, że ​​to dobry kompromis między rozmyciem a aliasingiem, ale to tylko mój gust, nie oparty na żadnych obiektywnych względach.

Nawiasem mówiąc, w ramach wpisu na blogu na temat antyaliasingu, który napisałem w zeszłym roku (opartego na odpowiedzi zamieszczonej w poprzednim wcieleniu tej witryny!), Przetestowałem różne jądra antyaliasingu na syntetycznym obrazie testowym i wyszło z 0,5 px Gaussa jako moim subiektywnym faworytem.


Pamiętam tę odpowiedź ostatnim razem :) (byłem wtedy githubphagocyte). Ciekawe, jak rozwinął się w post na blogu.
trichoplax

4

Wyobraź sobie, że renderujesz obraz płaskiej podłogi z jednolitym czarno-białym wzorem szachownicy, który rozciąga się na horyzont; warcaby są na tyle duże, że powinny być wyraźnie widoczne w punktach w pobliżu kamery, ale nie na tyle duże, aby można je było odróżnić w pobliżu horyzontu.

W pobliżu horyzontu podłoga powinna wyglądać po prostu jako jednolita szarość. W pobliżu kamery warcaby powinny wyglądać wyraźnie. Pomiędzy kamerą a horyzontem wygląd podłogi musi w jakiś sposób przechodzić między tymi dwoma skrajnościami.

Jeśli scena zostanie zrenderowana jako filtr przestrzenny z bardzo odciętą owcą, w pewnej odległości podłoga zmieni się w szachownicę w szarą. Jeśli zastosujemy płytszy filtr, przejście będzie znacznie bardziej stopniowe, ale rzeczy w pobliżu pierwotnej odległości „odcięcia” będą mniej ostre niż byłyby w przeciwnym razie.

Gdyby dodać „ścianę” lub przyciąć scenę, aby ukryć odległe części podłogi, tak aby nie było potrzeby zamazywania żadnych części podłogi w szachownicę na kolor szary, najlepsze wyniki można uzyskać, stosując najbardziej strome filtr, dając najostrzejszy obraz. Użycie płytszego filtra obniżyłoby ostrość obrazu w celu uniknięcia nieprzyjemnego przejścia, które i tak nie byłoby widoczne.

Ustalenie, jakiego rodzaju filtrowania użyć, wymaga zatem znajomości zawartości częstotliwości w wyświetlanych informacjach. Jeśli obraz nie zawiera niczego, co mogłoby zainteresować Nyquista, użycie stromego filtra da najostrzejsze wyniki. Jeśli jednak zawartość obrazu przekracza Nyquist, zastosowanie filtru stopniowego pozwoli uniknąć brzydkich „przejść”. Żadne pojedyncze podejście nie będzie optymalne dla wszystkich przypadków.


2

Moim zdaniem i doświadczenia nie sądzę, aby istniała jednoznaczna odpowiedź ... ponieważ zasadniczo w literaturze można łatwo znaleźć również przykład filtrów adaptacyjnych (tj. O zmiennej wielkości).

Myślę, że faktyczna odpowiedź powinna być związana zarówno z kontekstem aplikacji (tj. Sprzętem lub oprogramowaniem, w czasie rzeczywistym lub nie) oraz rodzajem sceny, którą zamierzasz zsyntetyzować (niektóre sceny zwykle wymagają różnego rodzaju aliasingu podczas syntezy (używam ten ogólny termin celowo)). Zasadniczo grafika komputerowa to badanie algorytmów i struktury danych do syntezy obrazów, a taka definicja nie jest ściśle związana z żadnym rodzajem aplikacji.

Oczywiście ważnym czynnikiem jest nawet cel, który ma zostać osiągnięty poprzez proces filtrowania (tj. Niekonieczne nadmierne rozmycie może być złe ...).

Jeśli mówisz o „miło widzieć”, myślę, że możesz się ze mną zgodzić, kiedy mówię, że nie ma konkretnej miary „przyjemnego obrazu”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.