Выделение пикселей по спецификации в Photoshop

Я использую Photoshop для дизайна ковров. Моя типичная работа — 1800 × 2400 пикселей с 8 или 10 цветами. Положение и цвет каждого пикселя важны.

Ткацкий станок, который производит ковер, не может сделать горизонтальные одноцветные линии высотой 1 пикс в хорошем качестве, если длина линии составляет 10 пикселей или более. Одноцветный рисунок вполне может иметь ширину 10 пикселей (или более), если он больше 1 пикселя.

См. образец моего изображения. Я отметил несколько проблемных строк:

Выбор фотошопа

До этого я просматривал изображение вручную и заменял проблемные строки одну за другой. Это очень трудоемкая работа, и легко некоторые ошибки остаются незамеченными.

Мне нужен быстрый метод — может быть, скрипт, плагин Photoshop или отдельная программа — который находит все эти 1x10 (или более) одноцветных линий и заменяет их другим узором того же цвета. Даже автоматический поиск был бы удовольствием. Если бы я мог определить и другие шаблоны, которые нужно найти и заменить, дополнение к программному обеспечению было бы luxorius.

Может кто-нибудь помочь мне?

По-прежнему остается огромное количество невыбранных областей шириной 10 пикселей, высотой 1 пиксель и имеющих одинаковый цвет во всех 10 пикселях. Вы должны сказать, что делает ваши одноцветные области 10x1 особенными (= стоит того, чтобы их выбрали). Никакое программное обеспечение не сможет сделать выбор за вас, если вы не скажете об этом основном различии. ПРИМЕЧАНИЕ: Photoshop ничего не знает о растениях, красоте или о том, что важно для вас в ваших мыслях. Также Photosop не видит отношений, которые нельзя назвать числами. Итак: что делает ваши одноцветные области 10x1 более важными, чем те (тысячи), которые вы не выбрали?
Не будет ли этот скрипт подхватывать весь фон?
@TimTroiano, это не сценарий, я выбрал эти области вручную.
@user287001 user287001 благодарю вас за полное мое значение. да, это правильно, мне нужен интеллектуальный выбор, который выделяет каждый отдельный цвет в 1x10 пикселей в целом по моей работе.
До сих пор нет разрешения. Позвольте мне предположить: интересные области размером 1x10 или больше окружены другими цветами, по крайней мере, на большей части их длины. Кроме того, они находятся в конце узора лестницы того же цвета. Вы хотите сделать внешний вид кривых более приятным, и для этого вам нужен быстрый способ пройти через все проблемные части. ХОРОШО? А как насчет вертикальных слишком пологих концов кривой? Их тоже найти?
@ user28701 позволь мне объяснить тебе. все наши дизайны сотканы с помощью машины, проблема здесь. Ковровая машина имеет проблемы с горизонтальными линиями, которые имеют ширину 1 и длину более 10 пикселей, даже в кривых, которые имеют лестницу того же цвета в конце себя. :( поэтому мы должны удвоить каждую горизонтальную линию в дизайне..
@user287001 user287001 для нас это отнимает много времени. так что это не для лучшего внешнего вида кривых. Тема важнее красоты. но вдруг моя фотка показывает просто кривые
У меня было совершенно неправильное зрение. Я бы показал, как при добавлении полутона кривые в целом будут иметь более плавный вид. И это без всякого нового софта. Это совершенно другое. К сожалению, я не программист, поэтому не могу дать ваш скрипт. Но я предлагаю отредактировать ваш вопрос, чтобы предотвратить дальнейшие недоразумения. Вы можете свободно отказаться от него.
@ user287001 :) спасибо дорогой
Поможет ли разделение одной строки 1x10 на две строки 1x5 - может быть, 2 цвета, но на самом деле одна и та же нить в 2 магазинах в машине
Если вы тот, кто проектирует это, то, как мне кажется, лучшим решением будет для вас не использовать эти горизонтальные линии в вашем дизайне с самого начала.
Это можно сделать, но вам нужен разработчик, который сделает это за вас, так как вам нужно написать плагин.
@Ryan, это может объяснить мне больше и яснее?
@joojaa разработчик?
@ user287001 на самом деле нет, потому что дизайн идет не так и кажется некрасивым. моей целью из «двойного» было добавить новую ту же строку выше или ниже основной строки.
Когда вы говорите, что заменили проблемные линии, вы заменяете часть длины другим цветом? Если да, то как определить какой цвет? Например, если плагин находит в строке 15 пикселей белого цвета, он должен разбить их на две группы: одна длиной 10 пикселей, а другая — 5 пикселей. Если он оставляет первую группу белой, как он определяет цвет для следующих 5 пикселей?

Ответы (1)

У меня нет полного решения, но у меня есть некоторые идеи. Размещение каждого из цветов в своих собственных каналах должно упростить поиск.

Вы можете сделать это, выбрав один или два пикселя цвета (и только этого цвета), затем выберите SelectSimilar.

фотошоп выбрать похожие

Теперь, когда все пиксели одного цвета выбраны, вы можете сохранить выделение, что создаст новый канал.

Здесь все становится немного сложнее и волнообразнее. Мы надеемся, что после некоторой обработки мы сможем сохранить линии шириной 10 пикселей или длиннее, но удалить все остальные.

Вот тестовый черно-белый выбор с разной длиной линий. Две верхние строки имеют ширину 12 пикселей и 10 пикселей соответственно, а нижние — короче. Мы пытаемся сохранить линии 10 и 12 пикселей, но удалить остальные.

введите описание изображения здесь

Несколько раз продублировав выделение, сместив его и используя различную непрозрачность для слоев, мы частично добились этого. Я использовал смещения 5px и непрозрачность 50% и 33%, а также уровни, чтобы сделать серые пиксели обратно белыми (сохранив те, которые нам нужны).

введите описание изображения здесь

Еще один проход с использованием того же метода, но на этот раз со смещением в 3 пикселя.

введите описание изображения здесь

И последний проход, делающий именно то, что мы делали в первом проходе. Думаю, это должно давать требуемый результат, а также иметь возможность автоматизироваться путем записи действия.

введите описание изображения здесь

При хорошем выборе заполнение этих частей изображения узором должно быть довольно простым. Для этого подойдет слой узора, использующий только что созданную маску.

Вот GIF используемых шагов. Я думаю, что это должно работать с любым первоначальным произведением искусства.

GIF процесс

Теперь я думаю об этом, я думаю, что вся эта структура может быть настроена с использованием смарт-объектов и смарт-фильтров, поэтому вам просто нужно заменить содержимое смарт-объекта для его обработки (при условии, что исходное изображение имеет те же размеры).

Что происходит с теми местами, где у вас 2 ряда ровно друг над другом? В любом случае, это всего лишь один цикл for, если вы хотите написать плагин.
@joojaa Смещения относятся только к оси X, поэтому линии выше и ниже не являются проблемой. Я думаю, что этот метод потребует добавления 5px отступов к левой и правой стороне изображения, чтобы он работал в 100% случаев.
Да, но вы должны отбрасывать результаты, где один и тот же цвет на двух линиях, потому что это связывает слои вместе.
Также рассмотрите возможность использования filter > other > custom вместо слоев
@joojaa Ты прав насчет линий сверху и снизу. Это лишь частичное решение. Возможно, их можно было бы решить на других этапах. Это действительно зависит от точных правил (которые все еще кажутся мне немного расплывчатыми). Код был бы проще, если бы OP писал код, но я предполагаю, что они этого не делают. По крайней мере, это можно было бы использовать для упрощения проверки.
Так, например, вы можете заменить слои пользовательским фильтром 1 1 1 1 1 по диагонали, запустить его 2 раза и установить порог 255. Это должно быть легче записать как действие.
Хорошо, вот как вы это сделаете, у него все еще есть некоторые изгибы, запустите вертикальный пользовательский фильтр 1 0 1 с масштабом 2 над дублированным слоем. инвертировать и умножить на оригинал, запустить порог 255, запустить горизонтальный пользовательский фильтр 1 1 1 1 1 с множителем 5 2 раза (для ширины 10), запустить порог 255. Хорошо, теперь у нас есть только то, что действительно. Затем снова запустите фильтр 1 1 1 1 1 2 раза и выберите порог 1 для выбора белых пикселей. В основном сделано. повторить для всех цветов.
@MarcEdwards, спасибо, дорогой Марк, за твое решение, но у меня было 2 проблемы с твоей идеей. сначала я не профессиональный пользователь PS, поэтому мне нужно более четкое изображение и объяснение для каждого шага. и 2-я проблема-это моя версия ps, я использую cs6, а не cc, так что многие варианты разные. на самом деле я мог бы решить вашу проблему, пока не «нарисую линии разной длины» :(
@rahabolandian Хорошая новость заключается в том, что все упомянутые выше вещи есть в CS 6. Возможно, я смогу создать документ, который сделает всю работу за вас. Идеи @joojaa тоже хороши. Я бы тоже хотел получить от них ответ… похоже, это более быстрый метод.