SquiggleCam
1.0.0
Gregg Wygonikがもともと実装したSquiggledRawアルゴリズムのWebベースの実装。
このプロジェクトのオンラインバージョンは、ウェブカメラから写真を撮り、プロッターが描く可能性のあるレーザー装飾可能な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ライセンス