Convierta a cuatro tonos mientras conserva los valores / brillo en Photoshop

9

Me gustaría reducir el número de tonos en mi imagen plana del rango completo a solo cuatro, pero me gustaría preservar el valor / brillo (y si es posible, la saturación también). Quiero cuatro tonos porque creo que se verá genial.

Intenté usar una capa de ajuste de tono, pero cuando la usé, solo cambió el rango durante la conversión, de modo que un rango se convirtió en otro con muchos colores. Quiero cambiar un rango específico para convertirlo al mismo tono mientras se preserva el valor / brillo (y tal vez incluso la saturación, si se puede hacer).

Estoy usando Photoshop CS5

Estos son los cuatro valores de tono HSB / HSV que quiero usar:

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

Así es como me gustaría convertir los tonos:

Valores objetivo de HSV

Nota: He modificado esta pregunta desde la primera publicación. Inicialmente, pedí erróneamente que los respondedores redujeran la imagen a cuatro valores RGB , al tiempo que mantenían los matices / valores en la imagen de origen. Sin embargo, esto es una tarea imposible, ya que los valores RGB contienen matices / brillo Y matices; en RGB, el tinte y el tono están inextricablemente unidos.

Afortunadamente, @Wolff pudo entender lo que quería decir, a pesar de mi pobre fraseo, y junto con @Danielillo, @Ryan y @Emilie, me ayudó a comprender que lo que realmente estaba pidiendo era apuntar a cuatro tonos, no a cuatro RGB valores. Luego identificó los cuatro tonos presentes en mis valores RGB (en HSB / HSV). Esos valores HSB / HSV son ahora los que les pido a los respondedores que apunten en la conversión de imagen (no RGB).

Además, como señaló @Wolff, en la primera versión de mi publicación, no especifiqué cómo convertir el espectro HSB completo (no tenía rangos tipo magenta). La pregunta actualizada también incluye ese rango omitido anteriormente.

Para aquellos que desean comprender la raíz de la confusión (expresada legítimamente por algunos usuarios que proporcionaron respuestas alternativas), estos fueron los 4 valores RGB originales que publiqué:

ingrese la descripción de la imagen aquí

Actualización de aclaración: sepa que mi intención es solo para la pantalla, no para imprimir. Construí un sitio, basado en esos cuatro tonos, y pensé que sería resbaladizo si todas las imágenes tuvieran los colores deformados para que coincidan. Al mismo tiempo, dentro de cada uno de los cuatro rangos de colores contraídos, quería mantener la mayor cantidad de dinámica codificada por el valor / brillo original como sea posible. Espero que esto ayude. El póster original no otorgará puntos por las respuestas impresas, pero cualquier explicación para una solución impresa probablemente sea apreciada por la comunidad. @Emilie, quien puso la recompensa por la pregunta, puede recompensar a quien desee.

¡Gracias a @Emilie por colocar la recompensa por esto! Realmente estaba desanimado porque nadie parecía poder responderlo antes.

CodificadorManos De Tijera
fuente
solo una suposición, pero ¿una combinación de una capa de ajuste en blanco y negro y un mapa de degradado?
Vincent
@ Vincent no funcionará, no lo creo. De hecho, no creo que ninguna respuesta funcione. Es un concepto defectuoso.
Ryan
De acuerdo ... entonces no necesitas canales especiales específicamente. Puede enmascarar capas y aplicar un color excesivamente ... Respetará los matices si envía el modo de fusión a "Tono" o "color".
Scott
La coloración es fácil (usaría mapas de gradiente). Seleccionar automáticamente los rangos de tono y crear las máscaras es esa parte más difícil. Todavía no he pensado en una solución para eso.
Marc Edwards
1
@Emilie, ¡me alegró el día ver todo el compromiso que generó tu recompensa! ¡Además puedo ver los resultados (que solo podía imaginar antes)! Incluso las respuestas "incorrectas" son interesantes. ¡¡Gracias de nuevo!!
CoderScissorhands

Respuestas:

6

Como otros han señalado, la lógica de esta pregunta es un poco defectuosa, pero no obstante es muy interesante.

Mi respuesta se basa principalmente en las matemáticas RGB / HSB y admito que hay muchos aspectos cuestionables cuando se trata de color percibido, perfiles de color, etc., pero lo intentaré de todos modos.


Me estoy tomando la libertad de redefinir un poco la pregunta para poder responderla.

En primer lugar, el espectro que nos está mostrando va del rojo al azul. El magenta es que falta - qué hacer con los colores de esa parte del espectro?

Así que estoy ampliando su espectro para incluir magenta en ambos extremos.

Otro problema que tenemos es su lista de cuatro tonos como la llama. No son solo tonos , son colores con valores individuales de saturación y brillo . Esto no tiene mucho sentido si vamos a compararlos con el espectro, por lo que tenemos que "reducirlos a matices" cambiando tanto la saturación como el brillo a 100.


Utilizaremos el filtro HSB / HSL (debe descargarse del sitio de Adobe) en Photoshop para obtener el tono de una imagen como una máscara alfa. Luego usaremos Mapa de degradado para asignar los valores de matiz a los valores deseados y luego convertiremos la imagen de nuevo a RGB usando HSB / HSL Filter nuevamente.

La matemática es un poco extraña porque el rango de tono es 0-360 ( y se ajusta), el rango de alfa es 0-255 y el rango de paradas de gradiente es 0-100.

Primero haré una tabla para tener una idea de lo que está sucediendo. Es posible que no necesitemos todos los números.

(Los valores son redondeados y los matices no son exactamente como los definió, porque he ampliado el espectro. Por supuesto, podrían haberse colocado de manera diferente).

Tomemos una imagen colorida y agreguemos el espectro como referencia. (Imagen de Mike Goad de Pixabay).

El uso del filtro HSB / HSL nos da el siguiente canal de tono:

Copio el canal de tono a un nuevo documento en escala de grises (el perfil de color debe ser Gray Gamma 2.2 ) para poder utilizar el Mapa de degradado en él. Configuré el Mapa de degradado de la siguiente manera:

Configurar las paradas de degradado requiere un poco de violín (es bastante molesto trabajar con él). Estoy obteniendo los valores de la tabla que hice antes. Hay 8 paradas en total, algunas de ellas deben superponerse para obtener transiciones difíciles:

El canal de tono resultante se ve así:

Finalmente copio este canal de tono nuevamente en la imagen HSB inicial, reemplazando el viejo canal de tono y convierto la imagen nuevamente a RGB usando el filtro HSB / HSL.

Creo que esto se realiza según lo solicitado, pero no estoy seguro de si se ve tan bien como esperaba. Las transiciones son muy abruptas, pero por supuesto podrían suavizarse cambiando el mapa de gradiente.


Editar: enfoque Javascript

Aquí hay un JSFiddle con una versión Javascript del mismo concepto. Suelta una imagen en la página resultante y se convierte a los cuatro tonos. Cambie los "hueRanges" para personalizar el resultado. La parte principal del código está anotada.

El resultado difiere ligeramente del método de Photoshop, pero está muy cerca:

Como no conozco las matemáticas detrás de los filtros de Photoshop, no puedo decir por qué existe esta diferencia.

Wolff
fuente
Continuemos esta discusión en el chat .
Wolff
Deja de publicar en los comentarios. Se creó la sala de chat, todos los comentarios posteriores a su creación se han perdido. Usa la sala de chat.
Ryan
2

Este es un concepto defectuoso para reproducir porque es completamente abritrario donde termina un color y comienza otro. También habla sobre preservar el tinte, lo que lo hace aún más confuso.

Dicho esto para tu resultado, puedes probar:

  1. Convertir a LAB
  2. Duplicar la capa y posterizarla con 4
  3. Cree 4 capas de ajuste de Color sólido con cada uno de sus 4 colores. Cambie cada uno al modo de mezcla de colores.
  4. Use las opciones de Mezclar si para reducir esos 4 colores a las contrains que busca.

Aquí están los resultados:

ingrese la descripción de la imagen aquí

Ryan
fuente
No creo que estés "preservando los tintes" como lo hace mi respuesta (de alguna manera), ¡pero se ve muy bien!
Wolff
Los tintes @Wolff en LAB están completamente separados en el canal L. Mi respuesta no edita ese canal en absoluto, por lo que debería preservar los tonos / sombras (iluminación)
Ryan
Ah, ya veo. Agradable.
Wolff
He hecho esta pregunta después de su respuesta porque realmente no pude encontrar nada que respalde que LAB separó el blanco / negro más adecuadamente que HSB. Así que atribuí la recompensa a la respuesta de Wolff, pero solo para que conste, ¡mi mente no está realmente decidida entre los dos!
curioso
2

La pregunta se editó recientemente de un estado ambiguo a una mejor forma. Exige ahora una cuantificación y reasignación de tono explícitamente predefinible. La respuesta aceptada lo da para Photoshop.

El siguiente es para usuarios de software gratuito.

Paint.NET tiene un filtro de complemento que realiza mapeos de matices y rangos de saturación directamente. Esta tarea necesita aplicar el filtro cuatro veces para asignar un total de 360 ​​grados a cuatro tonos discretos. El resultado es el mismo que en la respuesta aceptada. El filtro es "Tono / Saturación condicional". Es parte del paquete de efectos de Evan.

El filtro no está completamente pulido. No pude ingresar valores de tono exactamente predefinidos. La configuración del rango debe realizarse con controles deslizantes demasiado pequeños, no existen campos de entrada numéricos exactos. Aquí hay una prueba con la misma imagen que se usó en la respuesta de Wolff:

ingrese la descripción de la imagen aquí

usuario287001
fuente
Oh, es bueno ver que obtienes el mismo resultado. Quiero decir, parece que así es como se ve si haces lo que el OP te pide. ¿Alguna vez necesitaremos este resultado? No estoy muy seguro. Pero es un rompecabezas resuelto.
Wolff
@Wolff si el mapeo se realiza estableciendo los valores visualmente, el método seguramente tendría algún valor como herramienta creativa. El filtro para Paint.NET cumple esa tarea.
user287001
¡Gracias! Si bien quería una solución basada en Photoshop, es bueno tener una opción de código abierto. ¡Genial que hayas encontrado esto!
CoderScissorhands
1

1. Convertir la imagen RGB a HSB

Use Filtro> Otro> HSB / HSL y seleccione Modo de entrada: RGB y Orden de fila: HSB. Esto hará que la imagen se vea muy extraña, pero nos permite manipular el tono por separado de la saturación y el brillo utilizando los canales de imagen.

2. Reduce la cantidad de matices

El canal rojo ahora contendrá los tonos para todos los píxeles de la imagen. Desea cuantificar estos en sus cuatro tonos seleccionados. Esta es la parte más difícil. Una forma de hacerlo sería copiar el contenido en el canal rojo a una nueva imagen y establecer el modo de imagen en Color indexado y crear una paleta personalizada con sus matices asignados a los valores en blanco y negro correspondientes. Luego pegue esta imagen nuevamente en el canal rojo.

3. Convertir de nuevo a RGB

Cuando haya reducido el número de tonos, vuelva a aplicar el filtro HSB / HSL pero con la configuración de orden de entrada / fila invertida para completar el procedimiento.

filip
fuente
No tengo hsb / hsl como opción en mi menú "otro". ¿Es eso parte de CS5?
CoderScissorhands
Lo encontré aquí: supportdownloads.adobe.com/detail.jsp?ftpID=4688 , es un "complemento adicional" (debe colocar el archivo llamado "Opcional MultiPlugin.8BF" en la carpeta del complemento de instalación de Photoshop de su instalación.
CoderScissorhands
Llegué a la mitad del paso dos, y tengo el canal rojo en una nueva imagen, con el modo de imagen configurado en color indexado. Ahora, ¿le importaría decirme cómo crear una paleta personalizada con mis matices asignados a los valores en blanco y negro correspondientes? Si puedes caminar, muéstrame eso y funciona, puedo darte crédito por responder la pregunta. :)
CoderScissorhands
0

La pregunta no aclara el propósito de la imagen, esta respuesta es para una imagen destinada a la impresión ( EPS DCS )

En este caso, convertir una imagen a solo cuatro tintas sin tener el color negro, supone que las sombras de esa imagen serán el color más oscuro, azul.

  • Comenzando desde una imagen CMYK donde hay 4 canales de color disponibles, vaya al menú Imagen > Modo y elija Multicanal
  • Edite cada color de canal haciendo clic en la miniatura del color e inserte los números RGB
  • Reemplace el canal negro por el color azul

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Agregar después de los comentarios y el chat

Para mí, la pregunta tiene un problema conceptual que hace que sea difícil encontrar un resultado óptimo. Supongo que el OP pregunta por una imagen RGB pero piensa en un proceso de mezcla CMYK. Es por eso que uso una imagen CMYK mientras que @Wolff responde con una imagen RGB.

  • El rojo es fácil de cambiar al nuevo color RGB.
  • El problema viene con el amarillo, ya que en una imagen RGB el amarillo es la mezcla de verde y rojo, por lo que esto hace imposible separar el rojo y el amarillo como dos colores diferentes. En la barra espectral, los verdes y amarillos deberían ser un RGB amarillo, esto significa deshacerse de la imagen RGB. Se debe convertir a una imagen de impresión de colores planos (u otro modo de imagen) para obtenerla.
  • El mismo problema con el cian, una mezcla de verde y azul.

ingrese la descripción de la imagen aquí


fuente
2
Cazarrecompensas :) Su respuesta realmente no aborda todos los problemas técnicos de la pregunta. Y la imagen resultante no se puede imprimir, ya que no se pueden usar cuatro colores RGB como tintas de impresión. Veré si puedo encontrar una respuesta más (pseudo) técnicamente correcta.
Wolff
Lo sé, en realidad la pregunta tiene varios problemas poco claros para mí, por eso puse mi versión de impresión . No puede usar cuatro colores RGB como tintas de impresión , es cierto, pero puede usar el color RGB en un documento multicanal.
Sí, pero ¿qué hacer con el archivo después? Todavía es solo "para la pantalla". Tendrá que convertir a RGB y luego a CMYK para poder imprimirlo. La pregunta es defectuosa. Vea mi última publicación en The Ink Spot. (Estoy trabajando en otra solución en este momento)
Wolff
Tendrá que convertir a RGB y luego a CMYK para poder imprimirlo , eso está mal, un archivo .dcs está listo para imprimir en serigrafía de tintas planas. Vuelvo al principio de mi respuesta: la pregunta no aclara el propósito de la imagen.
2
Por lo que puedo decir, la forma en que @Wolff manipuló la foto del puesto de frutas se parece más al resultado esperado que esperaba (en comparación con su versión del mismo). Quiero algo parecido a la posterización, pero con tintes conservados tanto como sea posible. Su versión del puesto de frutas tiene naranjas y rojos que definitivamente quiero excluir. Esperaré un poco antes de recompensar la recompensa, pero hasta ahora, parece haber entendido mejor mi pregunta, tal como lo pretendía.
CoderScissorhands
-1

¿No está convirtiendo muchos colores a 4, sino logrando 4 colores con el mismo tinte? Abra el primer color en su selector de color. Izquierda y derecha cambia el tono. Arriba hace tintes, abajo hace sombras. Ir directamente desde su color a una distancia especificada. No sé cómo especificar la distancia, a ojo y mano es como lo hago. Si su color original está a la mitad del gráfico, elija un punto directamente encima de él que esté un 25% en la parte superior (o la cantidad de tinte que desee). Tenga en cuenta el valor hexadecimal de este nuevo color. Haga lo mismo para los próximos tres colores, tratando de obtener la misma cantidad del color original.

Alternativamente, junte sus 4 colores saturados y dibuje un rectángulo blanco sobre ellos y aplique transparencia / diferencia y opacidad del 80% al rectángulo. Es posible que deba probar las otras transparencias y opacidad, especialmente para obtener los matices correctos, o aplicar solo opacidad al rectángulo, agregando blanco a sus colores de manera uniforme para lograr el mismo matiz.

Webster
fuente
Oh, woops, esto es para Illustrator. Si el fondo es blanco, entonces la opacidad aplicará tinte a sus colores en PS.
Webster
Básicamente, quiero colapsar todos los tonos a cuatro y preservar los tonos. ¿Tiene sentido? Quiero que el resultado final tenga la gama completa de tintes disponibles en la imagen original. Sin embargo, quiero reemplazar los tonos ... reduciéndolos de espectro completo a cuatro, y que esos valores dependan de en qué parte del rango de tonos cae.
CoderScissorhands
-2

Hay algunas maneras en que puedo pensar, aunque ninguna de ellas es súper precisa y conveniente en todos los casos.

  • La opción uno es utilizar la herramienta de muestra / selección de color. Selecciónelo y luego configure el 'tamaño de muestra' en la parte superior a un valor grande que cubra aproximadamente 1/4 de la imagen. Al hacer esto, la muestra tomará un tinte promedio sobre un área más grande, en lugar de un solo píxel. Si su imagen es demasiado grande, reduzca la escala primero.
  • La opción dos es reducir la imagen a unos pocos píxeles de tamaño. Por ejemplo, si usaría la imagen que proporcionó y desea 4 colores, reduzca la imagen a 4 píxeles de alto. De esta manera, Photoshop encuentra los colores promedio para usted al escalar. Nota: Con la segunda opción, puede ser útil establecer la interpolación de imagen (se puede encontrar en la configuración de Photoshop) como 'vecino más cercano'.

Alternativamente, puede usar Adobe Illustrator, si lo tiene.

Importe la imagen que usa y busque 'rastreo de imagen'. Establezca el rastreo de imágenes en la mejor configuración que se adapte a sus necesidades. Al menos en CS6, hay ajustes preestablecidos para 3 o 6 colores, pero si abre el panel de rastreo de imagen, puede establecer otra cantidad de colores deseada.

paddotk
fuente
Sin embargo, dado que quiere convertir toda su imagen (como en cada píxel), reducirla probablemente no sea lo que quería.
SitiSchu