Интернет -реализация алгоритма SuggledRaw, первоначально реализованной Греггом Вигоником.
Онлайн-версия этого проекта снимает снимку из вашей веб-камеры и превращает его в SVG-файл, способный к партию, работающий на лазере.
Вот пример выходного изображения, сгенерированного этим инструментом:
А вот видео, который использует этот инструмент:
Клонировать или загрузить это репо, затем запустите эту команду, чтобы установить все зависимости локально:
npm install
Затем запустите эту команду, чтобы следить за изменениями и запустить HTML -страницу в браузере:
npm run dev
Алгоритм обрабатывает изображение следующим образом:
Retrieve photo as an array of pixels IMAGE
Set desired number of horizontal lines as LINE_COUNT
Set desired number of vertical spacing as SPACING
Set desired line amplitude as AMPLITUDE
Set desired line rotation frequency as FREQUENCY
For y :=0 to image height step image height / LINE_COUNT do
Set startx := 0
Set starty := y
Create a set of coordinates as [startx, starty]
For x := 1 to image width step SPACING do
Get brightness br of the current pixel as average of r,g,b values
Set r := (255 - br) / LINE_COUNT * AMPLITUDE
Set a := (255 - br) / FREQUENCY
Create a set of coordinates as [x, y + Math.sin(a) * r]
Pass the resulting array of coordinates to rendering application
Выходной файл SVG, сгенерированный этим инструментом, может быть загружен на преобразователь SVG -> GCODE (или аналогичный), чтобы быть нанесенным на график пера или выгравирован на лазерном резе.
Если вы хотите реализовать какой -либо из них или внести свой вклад - пожалуйста, создайте проблему и не стесняйтесь отправлять PR, я бы это признателен.
MIT Лицензия