01 / 问题
白底那一块,就是这个技能要解决的问题
同一张落款,贴到有底色的版面上,差别一眼就看出来。 下面四块样张是同一张图落在不同底色上的样子 —— 第一块是原图,后三块是抠完之后。




四块用的是上一节那张落款,只是换了底色。笔迹是纯黑,所以放在什么底色上都成立。
02 / 判档
不用你调参,它先量再判
动手前先量两件事:背景白度(灰度 p90)和笔迹宽度(等效宽度 w75)。 纯白底的细笔和灰底的粗笔,起手参数本来就不该一样 —— 分档走。
-
A高清黑底白字、笔迹适中
白底粗笔

-
B灰底 / 低对比度 / 粗笔
灰底粗笔

-
C细笔 / 中等模糊 / 纯白底
白底细笔

# 判错档不用慌:先动 --dil(断笔首选),再 --threshold,最后才微调 --dist
python3 skill/scripts/process_signature_cv2.py 签名.png -o 姓名.png --auto --trim03 / 用法
三步跑完
依赖只有 OpenCV / numpy / Pillow,装的时候记得 --only-binary=:all:。
跑完会打印三段日志(判档依据 / 参数 / 断笔自检)。断笔没修干净时它会自己回退一档重跑。
# 1. 先问它用哪个解释器(本机自带 python 常常缺 numpy)
python3 skill/scripts/bootstrap_env.py --check
# 2. 处理一张:--auto 自动判档,--trim 裁掉四周留白
python3 skill/scripts/process_signature_cv2.py 签名.png -o 姓名_transparent.png --auto --trim
# 3. 出肉眼核对图:白底版 / 断笔叠加图 / 左右对比图
python3 skill/scripts/preview.py 签名.png 姓名_transparent.png
04 / 证据
真实案例:公开的签名
下面每一张都是真图:横线本上拍的照片、泛黄发灰的旧纸、黑底白字的拓片。 左=原图,右=抠出的透明笔迹。这些公开案例会自动同步到这里—— 不是每次人工挑几张贴上,那样迟早会出现「处理完了但页面上没有」。
上面是 17 组,取自 22 组实测里可公开的那批(3 组横线本拍照件 + 14 组古帖题字; 5 组私人签名一律不进本站,机检拦在 CI)。每格都是同一张图:左=原图,右=结果 (棋盘格表示透明区)。点图可看原尺寸。
图注写的是这张图实际做过的处理 —— 标「无需预处理」的那几张,原图本身质量就够, 多一步反而有误伤笔画的风险。
其中一张用虚线框标出(深褐纸 + 草书):那张的旧印和笔画同色, 纹理会被判成墨,笔画粘连,只到「认得出是哪个字」的程度。 它照实放在这里,不撤 —— 一处不足比一句「全都很好」可信。 这批都是历史人物的字,不涉及在世个人。
05 / 来历
不是拍脑袋写的
算法是 22 组真实签名(3 组横线本拍照件 + 14 组古帖题字 + 5 组截图件)、十余版算法迭代收敛出来的,踩过的坑逐条写进了参考文档。
















