同样一张黑白图,有人描出来干净能用,有人描出来是「一堆碎线加一圈空心字」。差别不在工具好坏,在于描线这件事本身的机制。看懂机制,就知道哪些图必成、哪些图必败。

描线做了哪三步

第一步二值化:按阈值把图分成「黑」和「白」两类,灰度、颜色、填充信息在这一步全部丢掉。这就是为什么彩色照片转出来只有色块外轮廓 —— 工具眼里只有黑白。

第二步边界跟踪:沿黑色区域的边缘走一圈,得到一条闭合边界线。注意是边界,不是线条本身。

第三步拟合与输出:把边界折成多段线或样条,写成 DXF 轮廓路径或 SVG 路径。站内输出的是 AutoCAD R2000(AC1015)ASCII 文本,只包含几何轮廓。

由此推出的四个必然现象

实心形状会变成双线圈。 一个涂黑的实心圆,跟踪到的是它的外边界,结果是圆周上一条线,而不是一个填充的圆。一个粗笔画的方框会变成两个同心方框。这是机制决定的,不是 bug。

断线来自二值分界。 复印发淡、扫描件对比度低时,笔画上稍浅的一段被判成白,一条线被切成两三段,闭合轮廓就断了。手动把阈值往「描出更多」的方向调能接上一部分,但纸底灰雾会同时被描进来,结果从「断线」变成「一整片糊住的轮廓」。根因在图的对比度,最有效的一步是提高原图对比度,而不是调参数。

噪点会变成小碎圈。 纸纹、麻点在二值化后都是小面积黑色连通区,每一个都会输出一圈小闭合线。噪点过滤就是按面积把这些小圈丢掉。

文字变成空心字框。 描线不做文字识别,「ABC」会被描成一堆字母轮廓。想要文字内容请用 图片转文字,想要可编辑的 CAD 文字只能重打。

拿不到的是「对象关系」

CAD 图元的价值在于它是有意图的对象:这条线长 100、这个圆 R20、这两条线垂直。描线输出的只有坐标点,没有图层、没有颜色与线型、没有尺寸标注、没有约束关系、也不知道那是圆还是拟合出来的多边形。

这是所有描摹类工具的共同边界,与用什么软件无关。真正的矢量图元是可以直接编辑的,描出来的轮廓只能算「形状参考」。

什么时候别描,直接重画

  • 要求精度、尺寸必须准的零件图 —— 描线的轮廓带着像素抖动,缩放后不会变锐利
  • 需要参数化编辑、出三视图 —— 轮廓无法加约束
  • 原图很干净但线很多:描出来上千条多段线,清理比画一遍更慢

适合描的场景:logo 与文字造型转矢量、切割雕刻的轮廓提取、把平面图当底图参照重画。参考 矢量图和位图有什么区别?为什么有的图放大不糊。

如果你的目的是把图里的字取出来而不是描形状,那从一开始就不该走这一页。