Jaki jest najbardziej efektywny sposób na „puste” balony starych komiksów z zachowaniem tekstury papieru?

24

Biorę bardzo stare komiksy (lata 40. i 50.) i próbuję usunąć tekst z niektórych balonów słów. Nie chcę jednak po prostu usuwać ich zawartości do czystej białej przestrzeni, ponieważ kolor i tekstura papieru nie są czystą bielą; jest lekko pożółkły i ziarnisty (wówczas jakość papieru nie była świetna). Chciałbym skończyć z czymś, co wygląda jak oryginalny skan, jakby komiks nigdy nie był pisany literami.

W tej chwili próbuję znaleźć jak największą pustą przestrzeń w danym dymku słownym, skopiować najlepszy kwadrat lub okrąg, jaki mogę w nim zmieścić, i wielokrotnie wkleić ten kwadrat lub okrąg, aby zakryć tekst. Jest to żmudne, a także powoduje efekt końcowy, który jest trochę dziwny sam w sobie, ponieważ mam tę samą teksturę powtarzaną w kółko.

Próbowałem „rozmazywać” wyniki, ale to daje mi coś, co znów wygląda dziwnie. Co byś zasugerował?

Obecnie używam Seashore na Macu, ale mogłem również użyć GIMP.

EDYCJA: Przykładowy komiks załączony na żądanie. Pamiętaj, że papier w dymkach i podpisach ma kolor i teksturę, którą chciałbym zachować.

Przykładowy komiks

JeanSibelius
źródło

Odpowiedzi:

19

Wraz z Gimpem dostępna jest wtyczka Resynthesize wraz ze skryptem Heal Selection w języku Python . W systemie Linux wtyczka jest zawarta w pakiecie gimp-plugin-register .

Po wybraniu obszaru za pomocą narzędzia wyboru:

wprowadź opis zdjęcia tutaj

Możemy „wyleczyć” ten wybór z „Filtry> Ulepsz> Wylecz wybór…” . Tutaj wykonałem losowe uzdrowienie z 10 pikseli z otoczenia:

wprowadź opis zdjęcia tutaj

Takkat
źródło
2
+1, to bym zasugerował. Warto zauważyć, że jeśli chcesz zrobić to jednocześnie z dużą ilością tekstu, warto zacząć od utworzenia małej oddzielnej warstwy wypełnionej pustą teksturą papieru, a następnie użycia jej jako źródła tekstury. Przyspiesza to proces syntezy (ponieważ będzie mniej odrzuceń) i zapewnia, że ​​przypadkowo nie skończy się kopiowanie fragmentów otaczającego rysunku. Ponadto pełna wtyczka (w przeciwieństwie do skryptu „wybór leczenia”) ma wiele ustawień, w które można grać, aby dostosować wyniki.
Ilmari Karonen
2
Jeśli to w ogóle możliwe, zrób to przed zapisaniem obrazów w formacie JPEG. Na powyższych przykładowych obrazkach widać, że nawet jeśli sam tekst zniknął, niektóre artefakty kompresji wokół niego nadal istnieją. Osiągniesz znacznie lepsze wyniki przy mniejszym problemie, jeśli zrobisz to za pomocą surowych, nieskompresowanych skanów.
Ilmari Karonen
13

Podchodziłbym do tego w podobny sposób jak horatio, ale prawdopodobnie zachowałbym oryginalny obraz tak bardzo, jak to możliwe (zakładając, że chcesz go zachować).

Chciałbym stworzyć podobną teksturę do papieru, jak to:

tekstura hałasu

To po prostu tekstura szumu z subtelnym gradientem z pewnymi zniekształceniami w skali poziomej i pionowej.

Zauważysz pewne wariacje kolorów, które zastosowałem za pomocą narzędzi Nagraj i unik, aby pomóc wtopić się w istniejącą grafikę, ponieważ kolor nie jest jednolity w całym komiksie.

Użyłem maski przycinającej z usuniętymi bardzo miękkimi krawędziami wokół tekstu, aby uzyskać ten wynik:

Komiks z efektem końcowym

Użyłem do tego Photoshopa, ale te same zasady powinny obowiązywać w GIMP.

JohnB
źródło
1
To dobry wynik. Linie bąbelkowe działają jako bariera wizualna. Coś jak zmiana fasety na ścianie, kiedy masz farbę, która nie do końca pasuje.
horatio
1
Gdybym to zrobił, sugerowałbym wykonanie co najmniej 5 lub 6 różnych tekstur z niewielkimi różnicami kolorów, degradacji i plamek, aby wyglądało to bardziej naturalnie niż z identyczną teksturą na każdej stronie (zakładając, że robisz wiele stron)
Ryan
Moim pierwszym instynktem było zacząć od szarości 128 i uruchomić na niej chmurę różnic, a następnie dostosować poziomy, aby uniknąć wysokiego kontrastu (a następnie szumu i odcienia w / kolorowania). Podejrzewam, że pomysł JohnaB jest lepszy.
horatio
@horatio dobra obserwacja z „barierą wizualną”. Na pewno możesz wykryć zmianę w moim przykładzie, jeśli przyjrzysz się wystarczająco uważnie. Podejrzewam, że a) nikt nie przyjrzy się tak uważnie i b) dodanie nowego tekstu do bąbelków odciągnie widza od wszelkich niespójności
JohnB
@ Ryan to dobry pomysł, a jego tworzenie jest bardzo proste, dzięki czemu można szybko tworzyć różne tekstury
JohnB
5

Ponieważ edytujesz tekst (np. Radykalnie zmieniasz oryginał), jednym ze sposobów jest oszustwo:

Edytuj obraz, aby pożółkły papier nie był już pożółkły. Pozbądź się zawartości swojego serca, a następnie nałóż nowy efekt fałszywego żółtego papieru. To będzie jednolite.

horatio
źródło
+1. zamiast bawić się bez końca w maleńkich sekcjach, byłoby to prawdopodobnie najbardziej wydajne i łatwe. Istnieje wiele tekstur, które można znaleźć lub wykonać, które by to zrobiły.
benteh
Jedną wadą mojej odpowiedzi (: P) jest to, że ryzykujesz desaturacją wszystkich kolorów. Jeszcze do końca tego nie myślałem.
horatio
Pomysł jest jednak zdrowy.
benteh
3

Kopiowanie i wklejanie da najlepsze rezultaty bez niszczenia tekstury i koloru tego konkretnego balonu. To, co zazwyczaj robię, to kilkakrotne rozpoczęcie wklejania małej kopii, a następnie scalenie warstw (czy Seashore ma warstwy?), Ale zatrzymaj się tuż przed oryginałem. Następnie masz większą próbkę do dalszej pracy. Przed kontynuowaniem kopiowania i wklejania ta warstwa zmiękczy krawędź, a to naprawi dziwne wyniki. Po prostu używam dużej miękkiej gumki. Następnie wznów kopiowanie i wklejanie, spłaszczanie w razie potrzeby i zmiękczanie w razie potrzeby.

W zależności od komiksu prawdopodobnie uda ci się zrobić go zbyt dużym, a następnie zastosować tę samą „warstwę ochronną” dla wszystkich balonów. Po prostu pobierz dobrą pustą próbkę, upuść ją na wierzch, a następnie usuń nadmiar dla tego konkretnego miejsca.

Oczywiście, jeśli Seashore nie ma warstw, powiedziałbym, żeby zdobyć Gimpa.

Ryan
źródło
w celu „usunięcia nadmiaru” możesz mieć po prostu dużą pojedynczą teksturę wielkości obrazu, a następnie zastosować maskę warstwy, edytując maskę warstwy wszędzie tam, gdzie chcesz zakryć tekst.
horatio
3

Jeśli masz ochotę na przygodę, możesz wdrożyć opisany tutaj algorytm syntezy tekstur

wypełnia piksele tymi, które mają podobne sąsiedztwo, tworząc niemal płynne rozszerzenie tekstury lub wypełnianie dziur, oto kilka przykładów wprowadź opis zdjęcia tutaj

Gimp obsługuje skrypty, więc możesz napisać do tego wtyczkę (planowałem zrobić to sam jakiś czas temu, ale potem zostałem odsunięty na bok. Twoje pytanie przypomniało mi o tym ponownie)

DenDenDo
źródło
2
To brzmi jak wtyczka Resynthesizer dla GIMP (lub Content Aware w Photoshopie)
JohnB