Selección de píxeles por especificación en Photoshop

Uso Photoshop para el diseño de alfombras. Mi obra de arte típica es de 1800 × 2400 píxeles con 8 o 10 colores. La posición y el color de cada píxel son importantes.

La máquina de tejer que produce la alfombra no puede hacer líneas horizontales de un solo color de 1 pix de alto en buena calidad si la línea tiene una longitud de 10 pix o más. Un patrón de un solo color puede tener 10 píxeles (o más) de ancho si tiene más de 1 píxel.

Ver mi muestra de imagen. He marcado algunas líneas problemáticas:

Selección de Photoshop

Hasta esto, he recorrido la imagen manualmente y he reemplazado las líneas problemáticas una por una. Ese es un trabajo que consume mucho tiempo y fácilmente algunos errores pasan desapercibidos.

Necesito un método rápido, tal vez un script o un complemento de Photoshop o un programa separado, que encuentre todas esas líneas de un solo color de 1x10 (o más) y las reemplace con otro patrón del mismo color. Incluso la búsqueda automática sería una delicia. Si pudiera definir también otros patrones para encontrar y reemplazar, el complemento de software sería un lujo.

¿Alguien puede ayudarme?

Todavía hay una gran cantidad de áreas no seleccionadas que tienen 10 píxeles de ancho, 1 píxel de alto y tienen el mismo color en los 10 píxeles. Debe decir qué hace que sus áreas de 10x1 de un solo color sean especiales (= vale la pena seleccionarlas). Ningún software puede hacer las selecciones por usted si no le dice esa diferencia básica. NOTA: Photoshop no sabe nada sobre plantas, belleza o lo que es importante para usted en sus pensamientos. Además, Photosop no ve ninguna relación que no se pueda decir como números. Entonces: ¿Qué hace que tus áreas de un solo color de 10x1 sean más importantes que aquellas (miles) que no has seleccionado?
¿Este script no recogería también todo el fondo?
@TimTroiano este no es un script, seleccioné esas áreas manualmente.
@ user287001 te agradezco por completar mi significado. sí, es correcto, quiero una selección inteligente que seleccione cada color en 1x10 píxeles en general de mi trabajo.
Todavía no hay autorización. Déjame preguntar: Las áreas interesantes de 1x10 o más largas están rodeadas por otros colores al menos en la mayor parte de su longitud. Además, están al final de un patrón de escaleras del mismo color. Desea hacer que la apariencia de las curvas sea más agradable y para eso desea caminar rápidamente por todas las partes problemáticas. ¿OK? ¿Qué pasa con los extremos de las curvas verticales demasiado suaves? ¿Encontrarlos también?
@ user28701 déjame explicarte. todos nuestros diseños tejidos a máquina, el problema está aquí. La máquina para alfombras tiene problemas con las líneas horizontales que tienen 1 ancho y más de 10 píxeles de largo, incluso en curvas que tienen una escalera del mismo color al final de ellas. :( así que deberíamos duplicar cada línea horizontal en general del diseño..
@user287001 nos lleva mucho tiempo. por lo que no es para una mejor apariencia de curvas. El tema es mucho más importante que la belleza. pero de repente mi foto muestra solo curvas
Tenía una visión totalmente equivocada. Habría mostrado cómo agregando un medio tono, las curvas generalmente tendrían una apariencia más suave. Y eso es sin ningún software nuevo. Esto es totalmente diferente. Desafortunadamente, no soy programador, así que no puedo darte tu script. Pero hago una sugerencia de edición a su pregunta para evitar más malentendidos. Puedes rechazarlo libremente.
@ usuario287001 :) gracias querida
¿Ayudaría dividir una línea de 1x10 en dos líneas de 1x5, tal vez 2 colores pero en realidad el mismo hilo en 2 revistas en la máquina?
Si usted es el que está diseñando esto, me parece que la mejor solución sería que, para empezar, no ponga estas líneas horizontales en su diseño.
Esto se puede hacer, pero necesita que un desarrollador lo haga por usted, ya que necesita escribir un complemento.
@Ryan, ¿puede explicarme más y más claro?
@joojaa desarrollador?
@ user287001 en realidad no, porque el diseño sale mal y no parece hermoso. mi propósito de "doble" fue agregar una nueva línea por encima o por debajo de la línea principal.
Cuando dice que reemplazó las líneas problemáticas, ¿está reemplazando parte de la longitud con un color diferente? Si es así, ¿cómo determinas qué color? Por ejemplo, si el complemento encuentra 15 píxeles en una fila que son blancos, debe dividirlos en dos grupos, uno de 10 píxeles de largo y el otro de 5 píxeles de largo. Si deja el primer grupo en blanco, ¿cómo determina el color de los siguientes 5 píxeles?

Respuestas (1)

No tengo una solución completa, pero tengo algunas ideas. Poner cada uno de los colores en sus propios canales debería hacer que las cosas sean más fáciles de interrogar.

Puede hacer esto seleccionando un píxel o dos de un color (y solo ese color), luego elija SelectSimilar.

Photoshop selecciona similar

Con todos los píxeles de un solo color seleccionados, ahora puede guardar la selección, lo que creará un nuevo canal.

Aquí es donde las cosas se ponen un poco más difíciles y complicadas. A través de algún procesamiento, con suerte deberíamos poder mantener las líneas que tienen 10px de ancho o más, pero eliminar todas las demás.

Aquí hay una selección de prueba en blanco y negro puro con algunas longitudes de línea variables. Las dos líneas superiores tienen 12 px y 10 px de ancho respectivamente, y las de abajo son más cortas. Intentamos mantener las líneas de 10 y 12 píxeles, pero eliminamos las demás.

ingrese la descripción de la imagen aquí

Duplicar la selección varias veces, compensarla y usar una opacidad variable para las capas nos lleva a una parte del camino. Usé compensaciones de 5px y 50% y 33% de opacidad, además de niveles para llevar los píxeles grises de nuevo a blanco (manteniendo los que queremos).

ingrese la descripción de la imagen aquí

Otro pase usando el mismo método, pero esta vez con un desplazamiento de 3px.

ingrese la descripción de la imagen aquí

Y una pasada final, haciendo exactamente lo mismo que hicimos en la primera pasada. Creo que esto debería dar el resultado requerido y también poder automatizarse registrando una acción.

ingrese la descripción de la imagen aquí

Con una buena selección, llenar esas partes de la imagen con un patrón debería ser bastante fácil. Una capa de patrón que use la máscara recién creada funcionaría para eso.

Aquí hay un GIF de los pasos utilizados. Creo que debería funcionar con cualquier obra de arte inicial.

proceso de GIF

Ahora que lo pienso, creo que toda esta estructura podría configurarse usando objetos inteligentes y filtros inteligentes, por lo que solo tendría que reemplazar el contenido del objeto inteligente para procesarlo (suponiendo que la obra de arte original tenga las mismas dimensiones).

¿Qué sucede con esos lugares donde tienes 2 filas exactamente una encima de la otra? De todos modos, esto es solo un bucle for simple si desea escribir un complemento.
@joojaa Los desplazamientos son solo del eje X, por lo que las líneas arriba y abajo no son un problema. Creo que la técnica requeriría que se agregue un relleno de 5 px al lado izquierdo y derecho de la imagen para que funcione en el 100% de los casos.
Sí, pero se supone que debes descartar los resultados donde hay el mismo color en 2 líneas porque eso une las capas.
También considere usar filtro> otro> personalizado en lugar de capas
@joojaa Tienes razón sobre las líneas de arriba y de abajo. Esta es solo una solución parcial. Tal vez esos podrían abordarse en otros pasos. Realmente depende de las reglas exactas (que todavía me parecen un poco vagas). El código sería más fácil si el OP escribe el código, pero supongo que no lo hacen. Como mínimo, esto podría utilizarse para agilizar la inspección.
Entonces, por ejemplo, puede reemplazar las capas por un filtro personalizado 1 1 1 1 1 en diagonal, ejecutarlo 2 veces y ejecutar un umbral de 255. Eso debería ser más fácil de registrar como una acción.
De acuerdo, así es como lo hace, todavía tiene algunos problemas, ejecute un filtro personalizado vertical 1 0 1 con una escala de 2 sobre una capa duplicada. invierta y multiplique con el original, ejecute el umbral de 255, ejecute el filtro personalizado horizontal 1 1 1 1 1 con un multiplicador de 5 2 veces (para un ancho de 10), ejecute el umbral de 255. Bien, ahora solo tenemos las cosas que son válidas. Luego ejecute el filtro 1 1 1 1 1 nuevamente 2 veces y tome el umbral de 1 píxeles blancos seleccionados. Mayormente hecho. repita para todos los colores.
@MarcEdwards gracias querido marc por tu solución, pero tuve 2 problemas con tu idea. Al principio, no soy un usuario profesional de PS, así que necesito una imagen más clara y una explicación para cada paso. y el segundo problema es mi versión de ps, uso cs6 no cc, por lo que muchas opciones son diferentes. en realidad, podría hacer su problema hasta "dibujar diferentes longitudes de línea" :(
@rahabolandian La buena noticia es que todas las cosas mencionadas anteriormente están en CS 6. Podría crear un documento que haga todo el trabajo por usted. Las ideas de @joojaa también son buenas. Me encantaría ver una respuesta de ellos también... parece que podría ser un método más rápido.