Konwertuj na cztery odcienie, zachowując wartości / jasność w Photoshopie

9

Chciałbym zmniejszyć liczbę odcieni na moim płaskim obrazie z pełnego zakresu do zaledwie czterech, ale chciałbym zachować wartość / jasność (i, jeśli to możliwe, również nasycenie). Chcę czterech odcieni, ponieważ myślę, że będzie wyglądać świetnie.

Próbowałem użyć warstwy dopasowania odcienia, ale kiedy jej użyłem, zmieniła ona zakres tylko podczas konwersji, tak że jeden zakres został przekonwertowany na inny zakres z wieloma kolorami. Chcę przesunąć określony zakres, aby przekonwertować go na ten sam odcień, zachowując wartość / jasność (a może nawet nasycenie, jeśli można to zrobić).

Używam Photoshop CS5

Są to cztery wartości odcienia HSB / HSV, których chcę użyć:

  1. 333
  2. 58
  3. 193
  4. 242

Oto jak chciałbym przekonwertować odcienie:

Docelowe wartości HSV

Uwaga: zmodyfikowałem to pytanie od pierwszego opublikowania. Początkowo błędnie poprosiłem respondentów o zmniejszenie obrazu do czterech wartości RGB , przy jednoczesnym zachowaniu odcieni / wartości w obrazie źródłowym. Jest to jednak niemożliwe zadanie, ponieważ wartości RGB zawierają odcienie / jasność ORAZ barwy; w odcieniach i odcieniach RGB są nierozerwalnie połączone.

Na szczęście @Wolff był w stanie zrozumieć, co miałem na myśli, pomimo mojego kiepskiego sformułowania, a wraz z @Danielillo, @Ryan i @Emilie pomógł mi zrozumieć, że tak naprawdę chciałem uzyskać cztery odcienie, a nie cztery RGB wartości. Następnie zidentyfikował cztery barwy obecne w moich wartościach RGB (w HSB / HSV). Te wartości HSB / HSV są tymi, o które teraz pytam respondentów, aby celowali w konwersji obrazu (nie RGB).

Ponadto, jak zauważył @Wolff, w pierwszej wersji mojego postu nie określiłem, jak przekonwertować pełne spektrum HSB (nie miałem zakresów podobnych do magenty). Zaktualizowane pytanie obejmuje również ten wcześniej pominięty zakres.

Dla tych, którzy chcą zrozumieć przyczynę zamieszania (słusznie wyrażeni przez niektórych użytkowników, którzy udzielili alternatywnych odpowiedzi), były to oryginalne 4 wartości RGB, które opublikowałem:

wprowadź opis zdjęcia tutaj

Aktualizacja wyjaśnienia: proszę wiedzieć, że moim zamiarem jest wyłącznie wyświetlanie, a nie drukowanie. Zbudowałem witrynę opartą na tych czterech odcieniach i pomyślałem, że byłoby gładkie, gdyby wszystkie obrazy miały kolory wypaczone, aby je dopasować. Jednocześnie w ramach każdego z czterech zawalonych zakresów kolorów chciałem zachować jak najwięcej dynamiki zakodowanej przez oryginalną wartość / jasność. Mam nadzieję, że to pomoże. Punkty nie będą przyznawane przeze mnie, oryginalny plakat, za odpowiedzi w formie drukowanej, ale społeczność z pewnością doceni wszelkie wyjaśnienia dotyczące rozwiązania drukowanego. @Emilie, która wystawiła nagrodę na pytanie, może nagrodzić każdego, kogo zapragnie.

Dzięki @Emilie za umieszczenie nagrody za to! Byłem naprawdę zaskoczony, że nikt wcześniej nie był w stanie odpowiedzieć.

CoderScissorhands
źródło
zgadnij, ale połączenie czarno-białej warstwy dopasowania i mapy gradientu?
Vincent
@Vincent nie działa Nie wierzę. W rzeczywistości nie sądzę, aby jakakolwiek odpowiedź zadziałała. To błędna koncepcja.
Ryan
Okej, więc nie potrzebujesz specjalnie kanałów spotowych. Możesz po prostu maskować warstwy i nadmiernie nakładać kolor ... Będzie szanował odcienie, jeśli wyślesz tryb mieszania do „Barwy” lub „koloru”.
Scott
Kolorowanie jest łatwe (użyłbym map gradientowych). Trudniejsze jest automatyczne wybieranie zakresów odcieni i tworzenie masek. Nie wymyśliłem jeszcze rozwiązania tego problemu.
Marc Edwards,
1
@Emilie, Sprawiło, że mój dzień zobaczył wszystkie zaręczyny, o które prosiła cię nagroda! Dodatkowo widzę wyniki (które mogłem sobie tylko wyobrazić wcześniej)! Interesujące są nawet „nieprawidłowe” odpowiedzi. Dzięki jeszcze raz!!
CoderScissorhands

Odpowiedzi:

6

Jak zauważyli inni, logika tego pytania jest nieco błędna, ale jednak bardzo interesująca.

Moja odpowiedź opiera się głównie na matematyce RGB / HSB i przyznaję, że istnieje wiele wątpliwych aspektów, jeśli chodzi o postrzegane kolory, profile kolorów itp., Ale i tak spróbuję.


Pozwolę sobie nieco przedefiniować pytanie, aby móc na nie odpowiedzieć.

Przede wszystkim widmo, które nam pokazujesz, zmienia kolor z czerwonego na niebieski. Magenta brakuje - co zrobić z kolorami w tej części widma?

Rozszerzam więc wasze spektrum o magenta na obu końcach.

Innym problemem, jaki mamy, jest twoja lista czterech odcieni, jak ją nazywasz. Nie są to tylko odcienie , to kolory z indywidualnymi wartościami nasycenia i jasności . Nie ma to większego sensu, jeśli porównamy je ze spektrum, więc musimy „zredukować je do odcieni”, zmieniając zarówno nasycenie, jak i jasność na 100.


Użyjemy filtru HSB / HSL (należy go pobrać ze strony Adobe) w Photoshopie, aby uzyskać odcień obrazu jako maski alfa. Następnie użyjemy mapy gradientu do mapowania wartości odcienia na pożądane wartości, a następnie przekonwertujemy obraz z powrotem na RGB za pomocą filtra HSB / HSL.

Matematyka jest nieco funky, ponieważ zakres odcienia wynosi 0-360 ( i się zawija), zakres alfa wynosi 0-255, a zakres stopni gradientu wynosi 0-100.

Najpierw zrobię stolik, aby dowiedzieć się, co się dzieje. Możemy nie potrzebować wszystkich liczb.

(Wartości są zaokrąglone, a odcienie nie są dokładnie takie, jak je zdefiniowałeś, ponieważ rozszerzyłem spektrum. Oczywiście mogły być umieszczone inaczej).

Zróbmy kolorowy obraz i dodajmy widmo jako odniesienie. (Zdjęcie Mike Goad z Pixabay).

Korzystanie z filtra HSB / HSL daje nam następujący kanał odcienia:

Kopiuję kanał odcienia do nowego dokumentu w skali szarości (profil kolorów musi być Gray Gamma 2.2 ), aby móc na nim używać mapy gradientu. Konfiguruję mapę gradientu w następujący sposób:

Konfigurowanie ograniczników gradientu wymaga nieco manipulacji (praca z nim jest dość denerwująca). Otrzymuję wartości z tabeli, którą wcześniej stworzyłem. Łącznie jest 8 przystanków, niektóre z nich muszą się pokrywać, aby uzyskać twarde przejścia:

Wynikowy kanał barwy wygląda następująco:

W końcu kopiuję ten kanał odcienia z powrotem do początkowego obrazu HSB, zastępując stary kanał odcienia i przekształcam obraz z powrotem do RGB za pomocą filtra HSB / HSL.

Wierzę, że robi to zgodnie z życzeniem, ale nie jestem pewien, czy wygląda tak fajnie, jak się spodziewałeś. Przejścia są bardzo gwałtowne, ale można je oczywiście złagodzić, zmieniając mapę gradientu.


Edycja: podejście Javascript

Oto JSFiddle z wersją Javascript tej samej koncepcji. Upuść obraz na wynikowej stronie i zostanie przekonwertowany na cztery odcienie. Zmień „hueRanges”, aby dostosować wynik. Główna część kodu jest opatrzona adnotacjami.

Wynik różni się nieznacznie od metody Photoshop, ale jest bardzo blisko:

Ponieważ nie znam matematyki za filtrami Photoshopa, nie mogę powiedzieć, dlaczego jest taka różnica.

Wolff
źródło
Przestań publikować w komentarzach. Pokój rozmów został utworzony, wszelkie komentarze po jego utworzeniu zostały utracone. Użyj czatu.
Ryan
2

Jest to błędna koncepcja reprodukcji, ponieważ jest całkowicie aberracyjna, gdzie jeden kolor się kończy, a drugi zaczyna. Mówisz również o zachowaniu odcienia, co czyni go jeszcze bardziej zagmatwanym.

To powiedziawszy dla twojego wyniku, możesz spróbować:

  1. Konwertuj na LAB
  2. Zduplikuj warstwę i posteryzuj ją za pomocą 4
  3. Utwórz 4 warstwy dopasowania jednolitego koloru dla każdego z 4 kolorów. Zmień każdy z nich na tryb mieszania kolorów.
  4. Użyj opcji Blend-If, aby zredukować te 4 kolory do konturów, których szukasz.

Oto wyniki:

wprowadź opis zdjęcia tutaj

Ryan
źródło
Nie sądzę, żebyś „zachowywał odcienie”, tak jak robi to moja odpowiedź (w pewnym sensie), ale wygląda całkiem fajnie!
Wolff,
@ Odcienie Wolffa w LAB są całkowicie rozdzielone na kanał L. Moja odpowiedź w ogóle nie edytuje tego kanału, więc powinien zachować odcienie / odcienie (oświetlenie)
Ryan
O, rozumiem. Miły.
Wolff
Zadałem to pytanie po twojej odpowiedzi, ponieważ tak naprawdę nie mogłem znaleźć niczego, co mogłoby uzasadnić, że LAB oddzielił biel / czerń bardziej poprawnie niż HSB. Więc przypisałem nagrodę za odpowiedź Wolffa, ale dla przypomnienia, mój umysł nie jest tak naprawdę podzielony między nimi!
ciekawy
2

Pytanie to jest ostatnio edytowane ze stanu ambicji do lepszego kształtu. Wymaga teraz wyraźnie zdefiniowanej kwantyzacji i odwzorowania odcienia. Zaakceptowana odpowiedź daje ją dla Photoshopa.

Następny jest dla użytkowników freeware.

Paint.NET ma filtr wtyczek, który bezpośrednio mapuje zakres odcienia i nasycenia. To zadanie wymaga czterokrotnego zastosowania filtra, aby zmapować łącznie 360 ​​stopni na cztery odrębne barwy. Wynik jest taki sam jak w zaakceptowanej odpowiedzi. Filtr to „Warunkowy odcień / nasycenie”. Jest to część pakietu efektów Evana.

Filtr nie jest w pełni dopracowany. Nie mogłem wprowadzić dokładnie predefiniowanych wartości odcienia. Ustawienia zakresu należy wprowadzać za pomocą zbyt małych suwaków, nie istnieją dokładne numeryczne pola wprowadzania. Oto test z tym samym obrazem, który został użyty w odpowiedzi Wolffa:

wprowadź opis zdjęcia tutaj

użytkownik 287001
źródło
Och, miło widzieć, że masz taki sam wynik. Wydaje się, że tak to wygląda, jeśli zrobisz to, o co prosi OP. Czy kiedykolwiek będziemy potrzebować tego wyniku? Nie jestem tego taki pewien. Ale to rozwiązana zagadka.
Wolff
@Wolff, jeśli mapowanie odbywa się poprzez wizualne ustawienie wartości, metoda z pewnością miałaby pewną wartość jako narzędzie twórcze. Filtr dla Paint.NET spełnia to zadanie.
user287001,
Dzięki! Chociaż chciałem mieć rozwiązanie oparte na Photoshopie, miło jest mieć opcję open source. Fajnie, że to znalazłeś!
CoderScissorhands
1

1. Konwertuj obraz RGB na HSB

Wybierz Filtr> Inne> HSB / HSL i wybierz Tryb wprowadzania: RGB i Kolejność wierszy: HSB. Sprawi to, że obraz będzie wyglądał bardzo dziwnie, ale pozwoli nam manipulować odcieniem niezależnie od nasycenia i jasności za pomocą kanałów obrazu.

2. Zmniejsz liczbę odcieni

Kanał czerwony będzie teraz zawierał odcienie dla wszystkich pikseli na obrazie. Chcesz je skwantyzować do czterech wybranych odcieni. To jest najtrudniejsza część. Jednym ze sposobów na to byłoby skopiowanie zawartości czerwonego kanału do nowego obrazu i ustawienie trybu obrazu na Kolor indeksowany oraz utworzenie niestandardowej palety z odcieniami zamapowanymi na odpowiednie wartości czarno-białe. Następnie wklej ten obraz z powrotem do czerwonego kanału.

3. Konwertuj z powrotem na RGB

Po zmniejszeniu liczby odcieni ponownie zastosujesz filtr HSB / HSL, ale z odwróconym ustawieniem kolejności wprowadzania / wierszy, aby zakończyć procedurę.

Filip
źródło
Nie mam hsb / hsl jako opcji w moim „innym” menu. Czy to część CS5?
CoderScissorhands
Znalazłem go tutaj: supportdownloads.adobe.com/detail.jsp?ftpID=4688 , jest to „dodatkowa wtyczka” (musisz umieścić plik o nazwie „Opcjonalny MultiPlugin.8BF” w folderze instalacyjnym wtyczki instalacji programu Photoshop.
CoderScissorhands
Dotarłem do połowy kroku drugiego i mam czerwony kanał na nowym obrazie, z trybem obrazu ustawionym na kolor indeksowany. Czy mógłbyś mi powiedzieć, jak stworzyć niestandardową paletę z moimi odcieniami zamapowanymi na odpowiadające im wartości czarno-białe? Jeśli potrafisz przejść mnie przez to i to działa, mogę ci podziękować za odpowiedź na pytanie. :)
CoderScissorhands
0

Pytanie nie wyjaśnia celu obrazu, ta odpowiedź dotyczy obrazu przeznaczonego do drukowania ( EPS DCS )

W takim przypadku konwersja obrazu na tylko cztery atramenty bez koloru czarnego zakłada, że ​​cienie tego obrazu będą najciemniejszymi kolorami - niebieskim.

  • Zaczynając od obrazu CMYK, w którym dostępne są 4 kolorowe kanały, przejdź do menu Obraz > Tryb i wybierz Wielokanałowy
  • Edytuj kolor każdego kanału, klikając miniaturę koloru i wstaw cyfry RGB
  • Zamień czarny kanał na niebieski

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Dodaj po komentarzach i czacie

Dla mnie pytanie ma problem koncepcyjny, który utrudnia znalezienie optymalnego wyniku. Myślę, że OP pyta o obraz RGB, ale myśli w procesie miksowania CMYK. Dlatego używam obrazu CMYK, a @Wolff odpowiada przy użyciu obrazu RGB.

  • Kolor czerwony można łatwo zmienić na nowy kolor RGB
  • Problem pojawia się w przypadku żółtego, ponieważ na obrazie RGB żółty to mieszanka zieleni i czerwieni, dlatego nie można rozdzielić czerwonego i żółtego jako dwóch różnych kolorów. Na pasku spektralnym zielenie i żółcie powinny być żółtym RGB, co oznacza pozbycie się obrazu RGB. Aby go uzyskać, należy go przekonwertować na obraz w płaskich kolorach (lub inny tryb obrazu).
  • Ten sam problem z błękitem, mieszanką zieleni i niebieskiego

wprowadź opis zdjęcia tutaj


źródło
2
Łowca nagród :) Twoja odpowiedź tak naprawdę nie rozwiązuje wszystkich problemów technicznych pytania. Powstały obraz nie może być przeznaczony do drukowania, ponieważ nie można używać czterech kolorów RGB jako farb drukarskich. Zobaczę, czy mogę wymyślić bardziej (pseudo) technicznie poprawną odpowiedź.
Wolff,
Wiem, że w rzeczywistości pytanie ma kilka niejasnych problemów, dlatego umieściłem swoją wersję do drukowania . Nie możesz używać czterech kolorów RGB jako farb drukarskich , to prawda, ale możesz używać kolorów RGB w dokumencie wielokanałowym.
Tak, ale co potem zrobić z plikiem? To wciąż tylko „na ekran”. Musisz przekonwertować na RGB, a następnie z powrotem na CMYK, aby móc go wydrukować. Pytanie jest błędne. Zobacz mój najnowszy post na stronie The Ink Spot. (Pracuję teraz nad innym rozwiązaniem)
Wolff,
Musisz przekonwertować na RGB, a następnie z powrotem na CMYK, aby móc go wydrukować , to nie tak, plik .dcs jest gotowy do drukowania na sitodruku płaskich atramentów. Wracam do początku mojej odpowiedzi: pytanie nie wyjaśnia celu obrazu.
2
O ile wiem, sposób, w jaki zdjęcie @Wolff zmanipulowane na stojaku z owocami wygląda bardziej jak zamierzony rezultat, na który liczyłem (w porównaniu z twoją wersją). Chcę czegoś podobnego do posteryzacji, ale z odcieniami zachowanymi tak bardzo, jak to możliwe. Twoja wersja stoiska z owocami ma pomarańcze i czerwienie, które zdecydowanie chcę wykluczyć. Zaczekam chwilę, zanim nagrodzę nagrodę, ale jak dotąd wydaje się, że lepiej rozumiał moje pytanie, tak jak zamierzałem.
CoderScissorhands
-1

Nie konwertuje wielu kolorów na 4, ale osiąga 4 kolory z tym samym odcieniem? Otwórz pierwszy kolor w próbniku kolorów. Lewy i prawy zmienia odcień. W górę tworzy odcienie, w dół tworzy odcienie. Idź prosto ze swojego koloru na określoną odległość. Nie wiem, jak określić odległość, na podstawie wzroku i ręki, jak to robię. Jeśli twój oryginalny kolor znajduje się w połowie wykresu, wybierz punkt bezpośrednio nad nim, który wynosi 25% do góry (lub ile chcesz odcienia). Zwróć uwagę na wartość szesnastkową tego nowego koloru. Zrób to samo dla następnych trzech kolorów, próbując uzyskać taką samą ilość w stosunku do oryginalnego koloru.

Alternatywnie, zbierz razem 4 nasycone kolory i narysuj nad nimi biały prostokąt i zastosuj do niego przezroczystość / różnicę i krycie 80%. Być może będziesz musiał wypróbować inne folie i krycie, szczególnie, aby uzyskać odpowiednie odcienie, lub zastosować tylko krycie do prostokąta, dodając biel do kolorów równomiernie, aby uzyskać tę samą barwę.

Webster
źródło
Ojej, to jest dla Illustratora. Jeśli tło jest białe, nieprzezroczystość zastosuje odcień do kolorów w PS.
Webster,
Chcę po prostu zwinąć wszystkie odcienie do czterech i zachować odcienie. Czy to ma sens? Chcę, aby końcowy wynik miał pełną gamę odcieni dostępnych na oryginalnym obrazie. Chcę jednak zastąpić odcienie ... zmniejszając je z pełnego spektrum do czterech, a te wartości zależą od tego, gdzie w zakresie odcieni spada.
CoderScissorhands
-2

Jest kilka sposobów, o których mogę myśleć, ale żaden z nich nie jest super dokładny i wygodny w każdym przypadku.

  • Opcją pierwszą jest użycie narzędzia próbnika / próbnika kolorów. Wybierz go, a następnie ustaw „wielkość próbki” u góry na dużą wartość, która pokryłaby około 1/4 obrazu. W ten sposób próbnik pobierze średni odcień na większym obszarze, w przeciwieństwie do pojedynczego piksela. Jeśli obraz jest zbyt duży, najpierw go zmniejsz.
  • Drugą opcją jest zmniejszenie obrazu do wielkości zaledwie kilku pikseli. Na przykład, jeśli chcesz użyć dostarczonego obrazu i potrzebujesz 4 kolorów, przeskaluj obraz do wysokości 4 pikseli. W ten sposób Photoshop znajdzie dla Ciebie średnie kolory podczas skalowania. Uwaga: druga opcja może pomóc w ustawieniu interpolacji obrazu (można znaleźć w ustawieniach programu Photoshop) na „najbliższego sąsiada”.

Ewentualnie możesz użyć programu Adobe Illustrator, jeśli go posiadasz.

Zaimportuj używany obraz i poszukaj „śledzenia obrazu”. Ustaw śledzenie obrazu na najlepsze ustawienie, które odpowiada Twoim potrzebom. Przynajmniej w wersji CS6 dostępne są ustawienia wstępne dla 3 lub 6 kolorów, ale jeśli otworzysz panel śledzenia obrazu, możesz ustawić kolejną pożądaną liczbę kolorów.

paddotk
źródło
Ponieważ chce przekonwertować cały obraz (jak w każdym pikselu), skalowanie go prawdopodobnie nie jest tym, czego chciał.
SitiSchu,