SquiggleCam
1.0.0
基于Web的SquiggledRaw算法的实现,最初由Gregg Wygonik实施。
该项目的在线版本从您的网络摄像头中拍摄图片,并将其变成可绘图器可绘制的激光 - 可衍射的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,我将感谢它。
麻省理工学院许可证