Найти тему
Cacti Cross Stitch вышивка

Про алгоритм для схем вышивки крестиком

Иногда люди сталкиваются с трудностями, когда делают схемы для вышивки по фото для себя. Об этом не так давно вышла статья на канале Жанны Рон Ужасы прогона и самоподбора.

Частенько получаются нереалистичные цвета кожи, жёлтые или наоборот слишком розовые, исчезают некоторые важные детали, а также в схеме получается много крестиков одиночек - таких, у которых нет близко соседей того же цвета. Из-за одиночек приходится часто менять нить, что делает вышивку очень неприятной и утомительной.

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

Возможно, не в каждой программе для создания вышивальных схем алгоритм сжатия применяется, но я расскажу про программу Pattern Maker, потому что она довольно распространена среди российских дизайнеров.

При импорте фото в программу, на одном из последних шагов можно увидеть кнопочку Advanced. После нажатия на неё появится окошко в котором будет предложено выбрать Dithering method из четырех вариантов - Stucki, Floyd-Steinberg, Burkes и None. Это и есть алгоритмы для сжатия картинок.

Кнопочка в меню для импорта фото
Кнопочка в меню для импорта фото
Окошко с выбором алгоритмов сжатия картинки
Окошко с выбором алгоритмов сжатия картинки

Как это работает? Сначала Pattern Maker выбирает заданное количество цветов из указанной палитры, например DMC. Присваивает этим цветам числа, затем для каждого пикселя картинки вычисляет разницу между цветом на картинке и ближайшим к нему цветом в палитре. Затем эту разницу с каким-то коэффициентом добавляет к соседним нескольким пикселям. Разные алгоритмы определяют скольким соседним пикселям он разницу добавит и с каким коэффициентом.

Вот, например, я попросила сделать картинку котика всего в трёх цветах - чёрном, белом и сером. Выбрала алгоритм Floyd-Steinberg, 3 цвета и размер 313 крестиков в ширину. Вот такой котейка получился.

-3

Так вот проблема с вышивками по фото обычно как раз заключается в выборе программой Pattern Maker неправильной палитры. Для того, чтобы это показать, я взяла картинку с Дженнифер Лопес и загрузила её на сайт ditherit.com, который тоже делает сжатие с помощью тех же алгоритмов, но палитру он выбирает по-своему, не так как Pattern Maker. Ту же самую картинку загрузила в Pattern Maker. В результате картинка с номером 1 - это то что сделал Pattern Maker, а картинка с номером 2 - то что сделал ditherit. Количество цветов и размер одинаковые - 7 цветов, размер 384 на 282 крестика.

Pattern Maker
Pattern Maker
DitherIt
DitherIt

Обратите внимание как Pattern Maker потратил цвета на синие участки, и для кожи оставил мало оттенков, и выбрал очень жёлтые тона. В то время как DiterIt взял больше тёплых оттенков и лицо получилось более приятного цвета и менее сглаженное.

Можно ли заставить Pattern Maker использовать какие-то цвета принудительно? Да, можно. В меню есть галочка, самая нижняя, которая заставит программу сделать картинку в цветах, которые у вас будут выбраны внизу в цветах ниток. Можно переделывать импорт много раз, пока не выйдете из меню импорта, каждый раз, когда жмёте кнопку "импорт" он перегенерирует изображение в выбранных цветах.

С фото Дженнифер Лопес наилучший результат, который мне удалось получить - такой. В 11 цветов мулине, и размере 384 на 282 крестика.

-7

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

Если вы хотите узнать побольше о способе сжатия, о dithering-е, то рекомендую очень интересную статью об этом.