Jak naprawić nierówne / gradientowe oświetlenie na płótnie z białym tłem?

24

Mam zdjęcie ołówka wykonane na papierze, zrobione lampą błyskową w lustrzance cyfrowej na lustrzance cyfrowej i dwoma filtrami polaryzacyjnymi ( technika krzyżowego polaryzacji dla fotografii na płótnie).

Problem polega na tym, że gdy zbliżamy się do rysunku, oświetlenie staje się nierównomierne, ponieważ obiektyw rzuca cień na część obrazu. To tworzy gradient na obrazie, który jest w przybliżeniu, ale nie całkiem, liniowy.

Poniżej znajduje się przykładowy obraz; oryginał ma około 3 cm szerokości.

Jak można to zmienić, aby tło było równomiernie białe?

Obraz źródłowy z nierównomiernym oświetleniem

-Edytować-

Poniżej zeskanowane wyniki, nieskorygowane i poprawione. Choć na początku wygląda to całkiem obiecująco, niestety jest w pełnej rozdzielczości, co widać tutaj (szerokość 600 pikseli); skaner może wykonać 300 dpi, a rysunek ma szerokość około jednego cala. Jest to nieco mniej w porównaniu do 5000 pikseli z aparatu.

Ponadto, nieskorygowane wskazówki skanowania, że ​​grafit rzeczywiście odbija dużą część światła, w przeciwieństwie do techniki cross-polaryzatora.

Skanuj nieskorygowane Skanuj z poprawioną krzywą

Simon A. Eugster
źródło
Czy jest jakiś powód, dla którego robisz mu zdjęcie zamiast skanować?
Cole Johnson,
Tak; płótno może być większe niż A4. Ale porównam wyniki wieczorem. Jestem trochę podejrzliwy co do odbicia, które mogłoby wystąpić na graficie.
Simon A. Eugster,
@ColeJohnson Scan dodano powyżej.
Simon A. Eugster,
Coś jeszcze do wypróbowania: zdobądź lekki stół lub po prostu odłóż rysunek i zaświeć go jasnym światłem z tyłu i sfotografuj go z prześwitującym światłem (pozwalając, aby sam papier działał jak dyfuzor). Oczywiście nie będzie to działać z nieprzezroczystymi farbami lub jeśli coś zostanie narysowane na odwrotnej stronie, ale w przypadku jednostronnych ołówków, kredek, tuszów lub akwareli warto spróbować.
Ilmari Karonen

Odpowiedzi:

8

Metoda, której sam użyłem, jest podobna do twojej , ale używa wtyczki Resynthesizer (dla GIMP) lub Wypełniania z uwzględnieniem zawartości (dla Photoshopa) do odtworzenia gradientu:

  1. Utwórz zaznaczenie, które całkowicie pokrywa rysunek. Możesz to zrobić ręcznie lub użyć filtrowania górnoprzepustowego, aby obliczyć maskę selekcji w następujący sposób:

    • Zacznij od użycia filtra wykrywającego krawędzie, takiego jak Różnica Gaussa na (skanie) skanu, aby z grubsza wyodrębnić rysunek:

      Krok 1.1: Wyodrębnij rysunek z różnicą gaussów

    • Jeśli wynik nie ma kontrastu, użyj narzędzia Poziomy , aby go przyciemnić:

      Krok 1.2: Dostosuj poziomy

    • Zastosuj rozmycie gaussowskie :

      Krok 1.3: Zastosuj rozmycie gaussowskie

    • Użyj narzędzia Próg , aby uzyskać maskę pokrywającą cały rysunek, i użyj Wybierz według koloru, aby go wybrać:

      Krok 1.4: Użyj narzędzia progowego, aby uzyskać maskę

  2. Gdy masz zaznaczenie obejmujące rysunek, zrób kopię oryginalnej warstwy skanowania i użyj opcji Wylecz zaznaczenie / Wypełnij z uwzględnieniem zawartości, aby ją wypełnić. Idealnie, skopiowana warstwa powinna teraz wyglądać jak obraz pustej kartki papieru:

    Krok 2: Wylecz wybór, aby zrekonstruować czysty papier

  3. Ustaw tryb edytowanej warstwy na Podziel, jak we własnej odpowiedzi. Jeśli chcesz zachować część tekstury papieru i / lub cieniowania, możesz nieco zmniejszyć krycie warstwy i być może zastosować niewielką rozmazanie:

    Krok 3: Podziel według pustej warstwy papieru

    (Na powyższym zdjęciu wypełniona warstwa Gaussa jest zamazana o 10 pikseli, a krycie ustawione na 95%).

  4. Opcjonalnie po scaleniu warstw dostosuj poziomy, aby ustawić punkt czerni (wskazówka: użyj widoku histogramu logarytmicznego) i zwiększ kontrast:

    Krok 4: Dostosuj poziomy

(Ps. Kliknij zdjęcia w połowie wielkości, aby wyświetlić je w pełnym rozmiarze.)

Zaletą tej metody jest to, że może działać dość dobrze nawet w przypadku dość nieliniowych gradientów cieniowania. Oczywiście nie jest idealny - jeśli papier ma, powiedzmy, nieregularną plamę, której granica leży częściowo pod rysunkiem, wypełnienie uwzględniające treść prawdopodobnie nie odtworzy go poprawnie. Mimo to, jak widać powyżej, często daje całkiem przyzwoite wyniki.

Ilmari Karonen
źródło
To bardzo fajne i właściwie to najpierw chciałem zrobić, ale nie znalazłem Resynthesizera! Zamierzam wypróbować to jutro z kilkoma rysunkami. Ciekawe, gdzie znajdują się większe części rysunku. Twój wynik już wygląda świetnie.
Simon A. Eugster,
Wygląda na to, że nie mogę zarejestrować Heal Selection w Gimp, niestety…
Simon A. Eugster,
To dziwne. Czy korzystasz z systemu Windows lub Linux? Jedną z możliwości jest to, że możesz nie mieć dostępnego Pythona lub GIMP może go nie znaleźć z jakiegoś powodu. W takim przypadku wybór leczenia może nie działać, ale podstawowy Filtr> Mapa> Resynthesize (który może zrobić wszystko, co może zrobić wybór leczenia, nawet jeśli interfejs użytkownika może nie być tak wygodny) powinien być nadal dostępny.
Ilmari Karonen
Korzystam z systemu Linux i sam musiałem skompilować wtyczkę. Mapa> Resynthesize jest rzeczywiście dostępny. Jak mogę sprawdzić, czy Gimp znajdzie wymaganą wersję Pythona? Mam zainstalowane wersje 2.7.5 i 3.3.2.
Simon A. Eugster,
Nie jestem do końca pewny; Sam używam Ubuntu i po prostu pozwalam APT zająć się rzeczami. Czy w ogóle pojawia się podmenu Python-Fu ? Jeśli nie, może być konieczne zainstalowanie GIMP-Python (jeśli jest dostępny osobno od samego GIMP) i / lub rekompilacja GIMP z włączoną obsługą Python. Z drugiej strony tak naprawdę zgaduję.
Ilmari Karonen,
18

Edycja: Napisałem skrypt Gimp, który wykonuje poniższe kroki, i kolejny dla odpowiedzi Ilmaris . Oba skrypty są dostępne do pobrania na GitHub . Sugerowana droga to ta .


Odpowiadam na to pytanie, ponieważ od dłuższego czasu szukam rozwiązania i znalazłem prosty i działający. Przejdźmy do wyniku od razu:

  1. Utwórz warstwę tła, kopiując tylko pionowy pasek tła i rozciągając go do rozmiaru oryginalnego obrazu.

    W Gimp: Wybierz rprostokąt od góry do dołu zawierający tło, wklej Shift+Ctrl+Vdo nowego obrazu i powiększ Filter > Map > Tilego do rozmiaru obrazu, przesuń nad nim rozmycie gaussowskie, a następnie skopiuj go z powrotem do obrazu jako nową warstwę.

  2. Ustaw tryb warstwy na Podział .

  3. W razie potrzeby zmniejsz nieprzezroczystość warstwy, np. Do 90%. Utrzymywanie go na poziomie 100% jest zwykle nieco zbyt jasne.

Kroki podziału

W istocie polega to na tym, że warstwa tła określa wartość RGB w„białego” na każdym pikselu. Podział sposób warstwa następnie rozciąga się na wartości obrazu od [0,w]się [0,255](patrz sposoby warstwy GIMP ) na piksel.

(Zły) Przykład użycia krzywych i gradientu liniowego

Pierwsze próby zawsze polegały na powieleniu warstwy, zmianie jasności tak, aby najciemniejsze części na dole były odpowiednio oświetlone, oraz dodaniu maski warstwy z gradientem liniowym, aby rozjaśnić tylko ciemniejsze obszary. Im silniejszy gradient, tym gorzej wyglądał.

Próba z gradientem liniowym

(Lepszy) Przykład użycia podziału

Podział daje znacznie lepsze wyniki; oświetlenie jest ustalone równomiernie i nie ma żadnych spalonych obszarów, szczególnie w lewej części rysunku.

Korzystanie z podziału

Simon A. Eugster
źródło
Lub po prostu zmień ustawienia poziomów w Photoshopie
SaturnsEye
3
Aby uzyskać jeszcze lepsze wyniki, szczególnie w przypadku nie stałych / nieliniowych cieni w obu kierunkach, może zrobić zdjęcie białej kartki papieru, zastosować delikatne rozmycie, aby pozbyć się szumów aparatu i użyć to jako podstawa warstwy dopasowania.
PlasmaHH
1
@SaturnsEye Wypróbuj z powyższym obrazem wejściowym. Nie działa;) Gdyby papier był nawet szary, jak 10%, to tak, byłby to najłatwiejszy sposób.
Simon A. Eugster,
@PlasmaHH Wymagałoby to użycia statywu, aby uzyskać stałą odległość, ale jest to dobre rozwiązanie, szczególnie w przypadku mocno pomalowanych zdjęć. Tył papieru i tak jest zwykle biały, więc można go użyć jako warstwy dopasowania. (Używamy różnych rodzajów papieru o różnych odcieniach szarości / brązu).
Simon A. Eugster,
@ SimonA.Eugster: Gdybym miał robić te rzeczy więcej niż raz na jakiś czas, użyłbym statywu i ustawialnej lampy w celu uzyskania spójnych rezultatów.
PlasmaHH
5

Ta odpowiedź opisuje najszybsze niezawodne podejście, jakie znam atm, na podstawie odpowiedzi Ilmari Kanoren . Jest półautomatyczny; automatyczna maska ​​nie działa w przypadku twardych obrazów, takich jak poniższy, ponieważ w niektórych częściach rysunku nie ma krawędzi.

Ten skrypt Gimp automatyzuje kroki 3 i 4 (należy pamiętać, że wymagany jest Resynthesizer), więc przepływ pracy jest następujący: Utwórz wybór, uruchom skrypt. Skrypt wykonuje zdjęcie 15 MP na moim 3-letnim laptopie w 6 sekund.

wprowadź opis zdjęcia tutaj

Krok 1 (opcjonalnie): Dostosuj krzywe, aby uzyskać głęboką czerń

Czarny punkt

Krok 2: Wybierz obiekt

W Gimp szybka maska Shift+Qto szybki sposób. Użyj ołówka Ni pomaluj obiekt na biało, naciśnij Shift+Qponownie, aby przekonwertować maskę na zaznaczenie.

Obiekt wybrany

Krok 3: Odtwórz tło

  • Duplikuj obraz i skaluj do 400 × 400 px
  • Użyj opcji Wylecz zaznaczenie lub Wypełnij z uwzględnieniem zawartości, aby wyleczyć obiekt (pozostaje tylko tło)
  • Użyj rozmycia gaussowskiego, 40 × 40 px
  • Skaluj obraz z powrotem do oryginalnego rozmiaru i skopiuj go jako warstwę do oryginalnego obrazu

tło

Krok 4: Tryb podziału

Ustaw tryb warstwy na Podział i w razie potrzeby zmniejsz nieco krycie.

Naprawiono obraz

Simon A. Eugster
źródło
1

To jest forum fotograficzne, więc przyjmuję podejście fotograficzne. Oczywiście, aby uzyskać idealną biel, prawdopodobnie nadal potrzebujesz ulepszeń postprodukcyjnych.

Zamiast lampy błyskowej możesz spróbować użyć naturalnego światła. Unikaj bezpośredniego światła słonecznego, nie trzymaj się zbyt blisko okna, ale jak 2 metry od okna. Ma to na celu zmniejszenie różnicy w świetle między najbliższą i najdalszą częścią rysunku. (Ale ponieważ jest to mały obraz, odległość może nie być tak ważna.)

Możesz skierować statyw w dół i położyć rysunek na podłodze.

Lub jeśli nie masz statywu, możesz ustawić okładkę książki lub pojemnik na płatki, aby trzymać obraz pionowo na stole i ustawić aparat stabilnie na tym samym stole. (Umieść biały arkusz papieru za rysunkiem, aby uniknąć oglądania obrazów tła lub tekstur.)

Wspomniana technika polaryzacyjna ma miejsce w przypadku, gdy rysunek znajduje się za szkłem i gdy masz jasne obiekty lub odbicia. Ale jeśli twoje źródło światła jest ustawione pod kątem, prawdopodobnie nie musisz używać filtra.

Rafael
źródło
Jestem świadomy oświetlenia otoczenia. Prawdopodobnie przyniosłoby to lepsze wyniki w odniesieniu do gradientu, chociaż w tej odległości obiektyw najprawdopodobniej zacząłby już rzucać cień na papier. Tutaj faktycznie potrzebny jest polaryzator, ponieważ powierzchnia papieru nie jest równa, a grafit zaskakująco dobrze odbija światło, im ciemniejszy jest obszar;) Również naciśnięcie nieco mocniej ołówkiem może powodować wcięcia, w których światło otoczenia może ponownie odbijać .
Simon A. Eugster,