Страница 1 из 1
Программа для выжигания/сверления изображения StippleGen
Добавлено: 17 июл 2013, 13:31
Алексс
по мотивам темы в eggbot набрел на
чудеснейшую програмку StippleGen
рождает весьма и весьма оптимальные картины.
исходники на java (pde). можно чтонить подкрутить. первое что приходит на ум - распараллелить процесс вычисления на несколько ядер.
ну и подвисает иногда
тема для очумелых програмистов
Re: программа обработки изображения для выжигания/сверления
Добавлено: 17 июл 2013, 15:39
Nick
Алексс писал(а):первое что приходит на ум - распараллелить процесс вычисления на несколько ядер.
Что, так медленно работает?
Re: программа обработки изображения для выжигания/сверления
Добавлено: 17 июл 2013, 15:45
Алексс
ну все относительно конечно, план то не гнать.
но на моем рабочем core I7 2600 одна итерация считается около 2х секунд на дефолтных настройках.
там очень много математики... и вся на жабе
PS: итераций надо хотябы 100, тогда результат весьма и весьма!
Re: программа обработки изображения для выжигания/сверления
Добавлено: 17 июл 2013, 16:07
Nick
Да и правда не быстро идет... и это при 2000 точек...
Кстати, а что он подстраивает каждую итерацию? Зачем он диаграмму Вороного?
---------
А понял, они улучшают сетку точек смещая точку к центру ячейки диаграммы. А как тогда они делают первое разбиение?
Re: программа обработки изображения для выжигания/сверления
Добавлено: 17 июл 2013, 16:12
Сергей Саныч
Алексс писал(а):первое что приходит на ум - распараллелить процесс вычисления на несколько ядер
первое, что приходит - переписать на нормальном языке...
Re: программа обработки изображения для выжигания/сверления
Добавлено: 17 июл 2013, 16:16
Алексс
бьют на квадратики и берут яркость рандомной точки внутри.
Код: Выделить всё
int i = 0;
while (i < maxParticles)
{
float fx = lowBorderX + random(hiBorderX - lowBorderX);
float fy = lowBorderY + random(hiBorderY - lowBorderY);
float p = brightness(imgblur.pixels[ floor(fy)*imgblur.width + floor(fx) ])/255;
// OK to use simple floor_ rounding here, because this is a one-time operation,
// creating the initial distribution that will be iterated.
if (invertImg)
{
p = 1 - p;
}
// if (random(.5) >= p ) {
if (.5 >= p ) {
Vec2D p1 = new Vec2D(fx, fy);
particles[i] = p1;
i++;
}
}
даже нихера не бьют. тупо рандомом
Re: программа обработки изображения для выжигания/сверления
Добавлено: 17 июл 2013, 16:43
Nick
Забыл выключить, дошло до 1114 итерации
Кстати Алексс, не пробовал "x" нажимать?:)
Алексс писал(а):даже нихера не бьют. тупо рандомом
Как же они тогда потом кучкуются в темных местах?
Serg-tmn писал(а):Алексс писал(а):первое что приходит на ум - распараллелить процесс вычисления на несколько ядер
первое, что приходит - переписать на нормальном языке...
На питоне?
Re: программа обработки изображения для выжигания/сверления
Добавлено: 17 июл 2013, 17:02
Алексс
Nick писал(а):дошло до 1114 итерации
какая красотень получилась!
Nick писал(а):не пробовал "x" нажимать?
пробовал. не работает. по я вробовал в ручную задать 49000 точек. не дождался первой итерации
Nick писал(а):Как же они тогда потом кучкуются в темных местах?
первая итерация, как я понял сильно от фонаря и очень грубо находит точку, где что-то есть, строится вороная сетка, потом к каждой ячейке находится среднее значение яркости и ее центр яркости чтоли
Код: Выделить всё
xSum += PicDensity * x;
ySum += PicDensity * y;
dSum += PicDensity;
}
if (dSum > 0)
{
xSum /= dSum;
ySum /= dSum;
}
на полученных точках проделывается таже операция и тп.
это же надо было придумать !
переписать на нормальном языке
можно. но нужно ли ?
спецально обученные обезьяны уже забили всякие ништяки в либы для жабы. 10 минут подождал и готовый svg получил (если не зависло в процессе)...
Re: программа обработки изображения для выжигания/сверления
Добавлено: 17 июл 2013, 17:16
Nick
Алексс писал(а):пробовал. не работает. по я вробовал в ручную задать 49000 точек. не дождался первой итерации
а у меня сработало, уже час жду первую итерацию
.
Алексс писал(а):и ее центр яркости чтоли
а вот теперь понятнее
.
Re: программа обработки изображения для выжигания/сверления
Добавлено: 17 июл 2013, 17:26
Алексс
я понял. нужно чаще употреблять слова "типа", "чтоли", "опа", "наверное".
ближе к народу и проясняют суть дела
Re: программа обработки изображения для выжигания/сверления
Добавлено: 17 июл 2013, 22:11
Nick
Есть первая итерация
17000 секунд, это около 5 часов
Re: программа обработки изображения для выжигания/сверления
Добавлено: 17 июл 2013, 23:02
Ворон226
А первый вариант-то получше будет
Re: Программа для выжигания/сверления изображения StippleGen
Добавлено: 18 июл 2013, 00:26
michael-yurov
Не хватило разрешения монитора для окружностей менее 1 пикселя, из за этого они слились в черное.
Re: Программа для выжигания/сверления изображения StippleGen
Добавлено: 27 июл 2015, 13:56
lexalex83
Алексс писал(а):бьют на квадратики и берут яркость рандомной точки внутри.
По-моему не на квадратики а на диаграмму Вороного. что то не до конца понимаю алгоритм. А еще кто нибудь знает программы подобные этой?
Re: Программа для выжигания/сверления изображения StippleGen
Добавлено: 07 фев 2017, 09:00
GipsyRaven
Подскажите пожалуйста, как подготавливали gcode сверловки и скармливали его LinuxCNC