图片 SVG 转 G 代码管线
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_baad803c/img-to-gcode。
技能介绍
解决的问题
把位图变成笔式绘图仪能跑的路径,中间通常要跨过三道坎:一是图片本身有噪点、对比度不足,直接矢量化会产出碎边和毛刺;二是 SVG 里的曲线要转成绘图仪认识的抬笔、落笔、进给指令;三是坐标单位要从像素换算到毫米。这个技能把这条链路做成了固定管线,输入一张图片,输出同目录下的 .svg 与 .gcode。
工作方式
核心流程分几步:
- 保存输入:
save_image.py把上传的图片复制到当前工作目录,重命名为_input_前缀的文件名。 - 图像预处理与矢量化:
img2svg.py先做高斯模糊和 CLAHE 对比度增强,再自适应二值化,用形态学开闭运算去噪,最后调用potrace生成平滑曲线。 - 路径转换:
svg2gcode.py把 SVG 路径转成 G 代码,绘图参数集中在脚本顶部,例如SCALE控制像素到毫米的缩放,PEN_UP_Z和PEN_DOWN_Z分别定义抬笔高度与落笔深度,FEED_MOVE与FEED_DRAW区分空驶速度和绘制速度。 - 结果落地:
run.py串联上述步骤,运行结束后自动打开输出文件夹。
适用边界
- 依赖
opencv-python、numpy、svgpathtools三个 Python 包,以及potrace.exe,缺少后者管线无法完成矢量化。 - 默认
SCALE为0.0018,对应常见图片分辨率;图片尺寸或画幅变化时需要重新校准,否则输出尺寸会偏大或偏小。 - 输出是绘图路径而非成品图像,线条密度取决于二值化阈值,大面积渐变区域容易出现阶梯状断层。
- Y 轴方向默认做了翻转,对接不同型号绘图仪时需确认坐标系是否一致。
使用场景
- 设计师要把照片转成矢量路径,供笔式绘图仪输出
- 机械工程师需要生成G代码,驱动设备绘制工程图
- 前端开发者想将位图转换为SVG,用于后续数控加工
- 工程师预处理图像,提升矢量化后的曲线平滑度
适合人员
- 前端工程师,需将位图转SVG用于绘图仪
- 机械工程师,要生成G代码驱动数控设备
- 设计师,想把照片转矢量路径做雕刻
- 工程师,需预处理图像优化矢量化结果