Друзья, привет. Нужна ваша помощь в понимании программирования. Есть такой стиль, который называется low poly art, и для такого даже кто-то написал программу, чтобы переводить изображения в такую стилистику.
Вот ссылка на статью с кодом: https://cosmiccoding.com.au/tutorials/lowpoly
Предположим, у меня есть большое количество изображений около-студийного качества, то есть - видео. Как мне воспользоваться таким кодом, чтобы каждую картинку для видео переделать в такой вот стиль? Там ни экзешника нет, ничего.
Как я такое вижу: превращаю видео в набор кадров - около 12-18 картинок на каждую секунду видео. Закидываю это программе, а дальше она каждую картинку стилизует под low poly.
Не знаю чем тебе помочь, но мне понравилось какую ты прогу написал :)
Так это не я ее писал. Знать бы вообще, как с этим работать
Это ж питоновый скрипт, там не будет екзешника. Чтобы оно работало тебе нужно установить питон на комп (есть шанс, что он у тебя уже установлен), скопировать текст программы в текстовый файл и дать ему расширение ".py", затем просто запустить командой через консольку. Какой файл будет обработан - там указано в этой строчке inp = pygame.surfarray.pixels3d(pygame.image.load("lowpoly/bg1.png")). Технически, ты наверное мог бы оформить всю эту тему в цикл и скормить ему вместо "lowpoly/bg1.png" все необходимые кадры. Я не запускал этот скрипт, но что-то мне подсказывает что это будет весьма долго.
Там прямо на странице проекта написано, используйте FFMPEG. Дербанишь файл ка кадры в одну папку, прогоняешь все кадры через программу и обратно через FFMPEG создаешь видео. Все это легко на питоне делается. Если его знаешь. Если нет - то и в этой программе делать нечего.
Я питон не знаю, не программист, вот и спрашиваю, как много кадров скормить этому коду и на выходе получить обработанные изображения
"Я не электрик, но мне нужно установить новый щиток в квартире" "Я не врач, но мне надо как то самому избавиться от аппендицита" "Я не кондитер, но к субботе я хочу сделать роскошный торт на свадьбу друга" и еще тысяча вариантов такой же глупости
Чуваку нужна обработка картинок, а один умник сделал её выполнимой только через танцы с бубном и приручение питона. Вот он и спрашивает, как ему добиться обработки картинок. При чём здесь твои мимокрокодильские цитаты, я ума не приложу.
Чел, ты...
братик, ты читал жопой. Он тебе из одной картинки генерит стопицот и ты потом уже выбираешь понравившуюся, а ффмпег он юзал чтобы сделать из тонны картинок видосик
Вроде как то так. надеюсь ничего не забыл
1. Установить python
https://www.python.org/downloads/
2. установить необходимые либы
scipy
matplotlib
numpy
pygame
от сюда https://pypi.org/
командой pip3 install название
3. поменять в коде путь к пикчам. там вот это "lowpoly/bg1.png" на свой. если все из папки нужны, то нужен цикл с именами всех пикч в твоей папке. ну или написать строчку чтобы все название подгружались
4. потом запускать дабл кликом по файлу с кодом - название_файла_куда_скопирнешь_код.py
1. Установить python
https://www.python.org/downloads/
2. установить необходимые либы
scipy
matplotlib
numpy
pygame
от сюда https://pypi.org/
командой pip3 install название
3. поменять в коде путь к пикчам. там вот это "lowpoly/bg1.png" на свой. если все из папки нужны, то нужен цикл с именами всех пикч в твоей папке. ну или написать строчку чтобы все название подгружались
4. потом запускать дабл кликом по файлу с кодом - название_файла_куда_скопирнешь_код.py
Вариант попроще - найти знакомого с длинным питоном. У них есть модуль который питоновские скрипты заворачивает в EXE файлы.
У тебя есть такие знакомые?
Есть, но он недавно сам изучать начал, хз сможет ли он нормально запаковать.
там scipy и pygame. в эгзешники такое сложно запаковать. обычно проблемы всякие появляются. легче уж питон скачать
https://pastebin.com/v694Efnd
Вот модификация, которая конвертит несколько файлов.
На 42 строчке фильтр по имени файла, сейчас там bmp. Можно поменять.
На 43 строчке вывод в консоль имени файла, можно удалить строчку если вывод мешает.
На 73 строчке автора задаёт насколько "размытые" результаты генерировать. У него там стояло от 1 до 100 (99 изображений для каждого входа, где 1 самое размытое, 99 - самоё чёткое). Я оставил там от 45 до 55.
На моём стареньком ноутбучном проце генерация забивает одно ядро и генерит одну выходну картинку секунд 45-50.
Как-то разбивал mp4 на кадрый для своих нужд. Осталось вот такое консольное заклинание ffmpeg.exe -i input.mp4 -vf select=between(n\,1190\,1280) -vsync vfr thumb%04d.bmp
Хз насколько это релевантно с учётом коммента ниже, но пускай будет.
Вот модификация, которая конвертит несколько файлов.
На 42 строчке фильтр по имени файла, сейчас там bmp. Можно поменять.
На 43 строчке вывод в консоль имени файла, можно удалить строчку если вывод мешает.
На 73 строчке автора задаёт насколько "размытые" результаты генерировать. У него там стояло от 1 до 100 (99 изображений для каждого входа, где 1 самое размытое, 99 - самоё чёткое). Я оставил там от 45 до 55.
На моём стареньком ноутбучном проце генерация забивает одно ядро и генерит одну выходну картинку секунд 45-50.
Как-то разбивал mp4 на кадрый для своих нужд. Осталось вот такое консольное заклинание ffmpeg.exe -i input.mp4 -vf select=between(n\,1190\,1280) -vsync vfr thumb%04d.bmp
Хз насколько это релевантно с учётом коммента ниже, но пускай будет.
В том виде, в котором проект описан в статье с видео фильтр работать будет ху.. плохо. Пробема в п. 3. "Vertices from image". точки для треугольников выбираются случайно, после чего некоторые точки отбрасываются исходя из каких то параметров. Как только это будет сложено в видео, окажется, что на каждом новом кадре вершины треугольников не совпадают, в результате чего на экране будет лютая рябь выжигающая глаза.
Для видео нужно отслеживать происходящее на экране и плавно сдвигать координаты треугольников от кадра к кадру.
В любом случае для модификации скрипта потребуется пайтонист/питонист. Который и объяснит, как запустить программу для кучи картинок. Я этот язык ни разу не использовал, по этому тут без понятия.
Для видео нужно отслеживать происходящее на экране и плавно сдвигать координаты треугольников от кадра к кадру.
В любом случае для модификации скрипта потребуется пайтонист/питонист. Который и объяснит, как запустить программу для кучи картинок. Я этот язык ни разу не использовал, по этому тут без понятия.
Блин, хреново. А существуют ли плагины для перевода видео/по кадровых изображений в такое как-нибудь другим способом? может, есть такое в видео редакторе?
Тут я совсем не в курсе, с обработкой видео не знаком. Я могу ток в программирование и немного в анимацию.
И нет, знакомого с длинным питоном у меня нету. И сам за этот проект взяться сейчас не в состоянии.
И нет, знакомого с длинным питоном у меня нету. И сам за этот проект взяться сейчас не в состоянии.
Этот эффект был модным очень малое количество времени и давно, а реализуется он очень трудно, сомневаюсь, что плагины для такого сделали, разве что какие-то междусобойчики, которые не раздавались
эх
Единственное, что я могу придумать, это очень тяжёлый и достаточно багованый код на основе анализа цвета под изображением, сделать область из таких треугольников, чтобы в каждом цвет был средним по треугольнику. Если тебе нереально надо, то могу попробовать собрать такой проект в AE, но не уверен, что получится.
Написал в лс
Это конечно не совсем та область в которой я тусую, но вроде всё достаточно понятно расписано по ссылке.
Суть такова что это скорее не программа, а алгоритм типа чтоб делить столбиком делай вот так вот и тут тоже самое. Это не готовая программа а объяснение как можно так сделать с примерами.
Если сильно вдаваться в подробности то по шагам что там делается и каким куском кода это делается. В целом там в конце есть полный код скрипта, можешь играться с входными данными и смотреть что получишь в результате.
А в общих чертах, грузим изображение в скрипт, потом шаманим над цветами, сужаем палитру так как столько цветов в лоуполи нам не всрались (Load in Our Image). Затем чтоб не просрать основные действующие лица усиляем разницу в цветах у деталей (Highlight details). Накладываем поле точек на полученную в предыдущих шагах картинку (Vertices from image). Дальше делаем из полученных точек треугольники (Triangles from vertices) и подбираем цвета треугольникам по цветам попавших в него точек (Colour from triangles). Дальше вывод полученной картинки и запуск алгоритма по кругу для размельчения полигонов, что собственно и демонстрируется там на видео.
Вывод таков что для каждой картинки в идеале надо подбирать свои промежуточные параметры, а для того чтоб попробовать если совсем не шаришь то ставь anaconda (там скорей всего все нужные библиотеки будут сразу) копируй скрипт из конца статьи и только поменяй входной и выходной файлы. А дальше методом тыка разбираться.
Суть такова что это скорее не программа, а алгоритм типа чтоб делить столбиком делай вот так вот и тут тоже самое. Это не готовая программа а объяснение как можно так сделать с примерами.
Если сильно вдаваться в подробности то по шагам что там делается и каким куском кода это делается. В целом там в конце есть полный код скрипта, можешь играться с входными данными и смотреть что получишь в результате.
А в общих чертах, грузим изображение в скрипт, потом шаманим над цветами, сужаем палитру так как столько цветов в лоуполи нам не всрались (Load in Our Image). Затем чтоб не просрать основные действующие лица усиляем разницу в цветах у деталей (Highlight details). Накладываем поле точек на полученную в предыдущих шагах картинку (Vertices from image). Дальше делаем из полученных точек треугольники (Triangles from vertices) и подбираем цвета треугольникам по цветам попавших в него точек (Colour from triangles). Дальше вывод полученной картинки и запуск алгоритма по кругу для размельчения полигонов, что собственно и демонстрируется там на видео.
Вывод таков что для каждой картинки в идеале надо подбирать свои промежуточные параметры, а для того чтоб попробовать если совсем не шаришь то ставь anaconda (там скорей всего все нужные библиотеки будут сразу) копируй скрипт из конца статьи и только поменяй входной и выходной файлы. А дальше методом тыка разбираться.
Пока писал уже другие ответы подъехали, более простые, печаль тоска
Круто чел, ты знаешь английский. Правда плоховато.
1. Суть такова, что это описание алгоритма пайтоновской программы, куски кода которой интегрированы в текст, а сама она приведена в конце, после текста "Here’s the full code for convenience:"
2. Сужение цветового диапазона нужно не потому что "столько цветов в лоуполи нам не всрались", а для того, что бы алгоритм выделение краёв отработал лучше. Результат выделения используется только на этапе накидывания точек. А треугольники красятся по исходному изображению.
3. Про индивидуальные параметры для картинок в статье вообще не слова.
4. Топикастер вообще то спрашивал как это прикрутить к видео.
1. Суть такова, что это описание алгоритма пайтоновской программы, куски кода которой интегрированы в текст, а сама она приведена в конце, после текста "Here’s the full code for convenience:"
2. Сужение цветового диапазона нужно не потому что "столько цветов в лоуполи нам не всрались", а для того, что бы алгоритм выделение краёв отработал лучше. Результат выделения используется только на этапе накидывания точек. А треугольники красятся по исходному изображению.
3. Про индивидуальные параметры для картинок в статье вообще не слова.
4. Топикастер вообще то спрашивал как это прикрутить к видео.
По тому как написано начало, топикстартер вообще не шарит в программировании и вроде как хочет разобраться что тут происходит и как гипотетически это прикрутить к переделки видео.
1. Я сказал тоже самое.
2. Про цвета попытался адаптировать, согласен не удачно.
3. Ну в данном случае я имел ввиду работу с RGB, я конечно не сильно разбираюсь но сомневаюсь что одинаковая обработка будет одинаково хорошо работать на всех изображениях.
4. Я так понял что он в первую очередь говорил как разобраться в этом программировании, а как пример прикручивание его к видео.
В целом справедливые придирки, но порой одна адаптированная подача заменяет часы чтения и разборки взаимосвязей в документации. Хотя согласен что получилось так себе
1. Я сказал тоже самое.
2. Про цвета попытался адаптировать, согласен не удачно.
3. Ну в данном случае я имел ввиду работу с RGB, я конечно не сильно разбираюсь но сомневаюсь что одинаковая обработка будет одинаково хорошо работать на всех изображениях.
4. Я так понял что он в первую очередь говорил как разобраться в этом программировании, а как пример прикручивание его к видео.
В целом справедливые придирки, но порой одна адаптированная подача заменяет часы чтения и разборки взаимосвязей в документации. Хотя согласен что получилось так себе
Да, Все верно. Мне нужен алгоритм, чтобы на основе одной фотки сделать другую - лоу поли и так, кадр за кадром, сделать фрагмент видео в таком стиле. Я прекрасно понимаю, что это может быть долго и нудно, но результат стоил бы того