从像素到笔画:srt-whiteboard-animation骨架笔迹追踪实现(Zhang-Suen细化+8邻接追踪)
从像素到笔画srt-whiteboard-animation骨架笔迹追踪实现Zhang-Suen细化8邻接追踪【免费下载链接】srt-whiteboard-animation将 SRT 字幕做成暖米黄纸张底的流式笔迹白板手绘动画 skillmask 分区遮罩编排 stream 连续笔迹ink→color。项目地址: https://gitcode.com/gh_mirrors/sr/srt-whiteboard-animationsrt-whiteboard-animation是一个把 SRT 字幕变成暖米黄纸张底白板手绘动画的开源 Skill。它的核心之一是骨架笔迹追踪先用Zhang-Suen 细化把粗线条压成 1 像素宽的骨架再用8 邻接追踪沿骨架走出一条条有序笔画让笔尖贴着真实线条滑行落墨而不只是在网格中心点之间插值。️下面用「猴子山抢香蕉」这个官方示例拆解这条从像素到笔画的完整管线。上图是输入线稿对应的叙事标注在 examples/scene-01-monkey-mountain-banana.annotation.json 里按「场景铺垫 → 动作冲突 → 反应结果」拆成 3 个区域各区域随字幕时序依次绘制。两种笔迹路径网格与骨架渲染器提供两种起笔路径模式由--ink-path参数切换默认grid模式笔尖走的路径特点grid网格格中心插值稳定通用场景默认skeleton骨架级像素追踪笔尖走真实线条中心线稿清晰的插画更贴合网格模式把含墨的格子聚类串成路径笔尖在格中心之间直线插值——简单但落点只是「格子的代表」离真实线条可能偏几个像素。骨架模式则先算出线条的中心线让笔尖精确踩在笔画正中这也是本文要拆解的部分。实现集中在 scripts/stream_render.py 的「骨架级笔画追踪」区块。上图就是skeleton模式下的起笔段笔尖沿骨架逐段揭示原图墨迹线条出现得「顺」而非「跳」。第一步Zhang-Suen 细化粗线条压成 1 像素骨架骨架追踪的输入是一张二值墨迹掩码对灰度图做自适应阈值后ink_pixels thresh_map ink_threshold灰度低于阈值的像素被视为线稿墨迹见 scripts/render_stream_whiteboard.py。_zhang_suen_skeleton把这张掩码细化到 1 像素宽算法是经典的 Zhang-Suen 薄化外扩一圈零边界避免边缘像素越界两段子迭代循环最多 160 轮每一轮先执行第 0 步删除条件再执行第 1 步删除条件直到没有任何像素被删除为止每个前景像素检查 8 邻域同时满足才删除邻域前景像素数在 2~6 之间邻域顺时针扫描中 0→1 转换恰好 1 次保证拓扑不破坏两组对角约束第 0 步要求p2·p4·p60且p4·p6·p80第 1 步要求p2·p4·p80且p2·p6·p80。两个子步用不同的对角约束交替删点是 Zhang-Suen 相对其它薄化算法的关键它能尽量保留骨架的连通性和原始走向减少「毛刺」和断线。整个过程是纯 numpy 布尔运算1080p 线稿一轮渲染中开销很低。第二步8 邻接追踪把骨架走成有序笔画1 像素骨架只是一堆点trace_8connectedscripts/stream_render.py把它们走成有序笔画序列四条规则是精华① 起点优先级先找度1 的端点做起点就像真人下笔其次是度2 的交叉点最后才是普通点。这样每笔画的起笔位置最接近真实书写习惯。② 交叉点走「最直边」普通做法遇到交叉点会把每个分支切成短笔画画面会碎。这里用_choose_next计算当前行进方向与每个候选方向的余弦相似度取最直的未访问边继续走——笔尖在十字路口会「顺势直行」而不是原地掉头。③ 跳过「正交桥」对角邻居_skel_neighbors中如果对角邻居与当前点之间已经有正交路径相连就跳过这个对角边。这避免了 T 型/十字交叉处出现「三角形碎笔画」。④ 边不可重复走访问标记打在无向边上像素可复用、边不能重走死胡同即停剩余分支留给后续起点补上长度不足 8 个点skeleton_min_points的碎片直接丢弃。参数默认值在 Config骨架最少 8 点、重采样间距 2.5 像素。后处理重采样、平滑与笔画排序追踪出的原始像素还带着锯齿三道后处理让笔迹「手感」更好等距重采样_resample_stroke_points按累计弧长每 2.5 像素取一个点去掉长短不一的像素跳Chaikin 切角平滑_chaikin_smooth每段用 0.25/0.75 两个插值点替换保留起止点一轮切角让折线变圆润而不失形阅读顺序排序_order_skeleton_strokes按「从上到下、从左到右、长笔优先」的字典序排列笔画符合人类书写习惯。整合入口是_build_skeleton_path细化 → 追踪 → 重采样平滑 → 排序并打印「骨架追踪: N 条笔画, M 个采样点」方便排查。逐区域作画与抬笔机制在整合渲染器 scripts/render_stream_whiteboard.py 中骨架追踪是按区域做的_region_skeleton_strokes先取ink_pixels allowed——矩形区域扣除后续区域与protectedRegions后的允许掩码再跑同一套细化追踪平滑流程保证未开始的区域不会提前露线mask 编排的不变量。起笔段_lay_ink把多条笔画展平成连续采样点跨笔画处标记抬笔pen_lifts笔尖在抬笔处不插值、直接「跳」到下一笔起点模拟真实换笔动作每帧之间则用_reveal_ink_segment以ink_reveal_radius半径的抗锯齿线段逐段揭示原图墨迹——骨架已精确到像素无需网格模式那样的整块填充。兜底策略若某区域骨架追踪结果为空碎片太多被过滤自动回退到网格格中心路径绝不留空路径见 scripts/render_stream_whiteboard.py。动手体验开启 skeleton 模式环境准备后按标准工作流渲染加一个参数即可python scripts/prepare_env.py --check python scripts/prepare_env.py ENV_PY scripts/render_stream_whiteboard.py 图片路径 标注路径 输出.mp4 assets/drawing-hand.png \ --ink-path skeleton --color-fill contour-wipe示例场景的完整命令ENV_PY scripts/render_stream_whiteboard.py examples/scene-01-monkey-mountain-banana.png \ examples/scene-01-monkey-mountain-banana.annotation.json out.mp4 assets/drawing-hand.png --ink-path skeletonENV_PY是 scripts/prepare_env.py 输出的ENV_PY路径用于隔离依赖。完整工作流SRT 分镜 → 线稿 → 标注 → 渲染 → 合并见 SKILL.md 与 README.md。质量检查清单首帧是干净暖米黄底纸无线条提前露出笔尖贴近正在推进的骨架笔迹交叉点不出现三角形碎笔画笔画间有自然抬笔跨笔不画直线连线线稿模糊/碎片化时骨架无笔画会自动回退网格模式每幕结束后至少停留 0.5 秒完整画面。小结srt-whiteboard-animation 的骨架笔迹追踪本质是一条「图像学 → 几何 → 书写习惯」的管线Zhang-Suen 两子迭代细化粗线条 → 1 像素骨架保连通、保走向8 邻接最直边追踪骨架 → 有序笔画端点起笔、交叉点顺势直行、边级去重重采样 Chaikin 平滑 阅读顺序排序像素折线 → 有手感的笔迹区域掩码约束 抬笔回退与 mask 编排无缝协作失败自动降级。默认grid模式稳如磐石而线稿清晰的插画换成--ink-path skeleton笔尖便真正贴上了线条——这正是白板动画「像人画的」最后一块拼图。✍️【免费下载链接】srt-whiteboard-animation将 SRT 字幕做成暖米黄纸张底的流式笔迹白板手绘动画 skillmask 分区遮罩编排 stream 连续笔迹ink→color。项目地址: https://gitcode.com/gh_mirrors/sr/srt-whiteboard-animation创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

贵州网站建站避坑指南:免费工具搞定被黑难题

贵州网站建站避坑指南:免费工具搞定被黑难题

贵州网站建站避坑指南:免费工具搞定被黑难题 网站上线第三天,后台突然弹窗警告“检测到危险脚本”,首页变成了博彩广告,后台密码也改了。那一刻,很多贵州本地做站的老铁都慌了。别急,这种“网站被黑挂马”的噩梦,80%是因为部署环节用了免费的、来路…

2026/9/27 0:03:35 阅读更多 →
做网站需要哪些软件一文搞懂不写代码也能落地

做网站需要哪些软件一文搞懂不写代码也能落地

做网站需要哪些软件一文搞懂不写代码也能落地 很多老板问我,想给公司做个官网,到底要买什么软件?其实这个问题问反了。做网站不需要你成为程序员,但你需要知道哪些工具能帮你把想法变成现实。如果你自己不会代码,想低成本启动,这篇文章一文搞懂做网站需…

2026/9/27 0:02:35 阅读更多 →
论文AIGC疑似度是什么意思?想查论文AI率有哪些免费工具?

论文AIGC疑似度是什么意思?想查论文AI率有哪些免费工具?

论文AIGC疑似度是什么意思?想查论文AI率有哪些免费工具? 查重报告看过很多次,第一次见到AIGC疑似度却不知道它在说什么:这是抄袭比例,还是AI写作概率?想查论文AI率,可以先了解率零、PaperPass和…

2026/9/27 0:02:35 阅读更多 →

最新新闻

做免费网站教程国vs怎么选3个坑让新手少花5000元

做免费网站教程国vs怎么选3个坑让新手少花5000元

做免费网站教程国vs怎么选3个坑让新手少花5000元 网站被黑挂马不知道怎么办?别慌,这往往是新手在搭建初期就埋下的雷。很多刚入行的人盯着“做免费网站教程国vs”这类搜索词,以为只要找对教程就能白嫖一个高逼格官网,结果上线不到一周,首页弹窗…

2026/9/27 0:49:04 阅读更多 →
贡献 Strands 文档站:Astro/Starlight 文档站点的开发、写作与提交流程实战指南

贡献 Strands 文档站:Astro/Starlight 文档站点的开发、写作与提交流程实战指南

人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务 【免费下载链接】harness-sdk Build an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python & TypeScript - any model, any cloud. 项目地址: https://…

2026/9/27 0:49:04 阅读更多 →
DeskcommCRM实操指南:从选型到私有化部署的完整路径

DeskcommCRM实操指南:从选型到私有化部署的完整路径

1. 为什么最后把DeskcommCRM放进了选型清单1.1 团队表格管理客户的崩溃时刻说句实话,DeskcommCRM并不是我上手的第一套客户管理系统。在那之前,团队一直用共享表格管理客户,总共十六个销售,每天新增线索、跟进记录、下次联系时间全…

2026/9/27 0:49:04 阅读更多 →
如何做网站知乎避坑:3步搞定防黑与性能优化

如何做网站知乎避坑:3步搞定防黑与性能优化

如何做网站知乎避坑:3步搞定防黑与性能优化 上周接到武汉某制造企业的求助电话,老板急得满头汗:“网站被黑挂马了,首页全是赌博广告,客户投诉电话被打爆,现在网站被搜索引擎降权,流量跌了80%!”这场景在湖北乃至全国的中小企业建站中太常见了。很…

2026/9/27 0:49:04 阅读更多 →
口碑好的龙岗网站建设一文搞懂

口碑好的龙岗网站建设一文搞懂

龙岗建站避坑:从零搭建选对技术,口碑才是硬道理 改个需求建站公司拖一周,这大概是龙岗企业老板最头疼的痛点。很多老板以为找家“口碑好”的龙岗网站建设公司就能高枕无忧,结果发现所谓的口碑,往往建立在僵化的模板交付上。真正的口碑,源于你能否…

2026/9/27 0:49:03 阅读更多 →
3步搞定wordpress付款后可见功能,保姆级建站教程避坑指南

3步搞定wordpress付款后可见功能,保姆级建站教程避坑指南

3步搞定wordpress付款后可见功能,保姆级建站教程避坑指南 网站被黑挂马不知道怎么办?别慌,我见过太多新手站长因为安全配置一塌糊涂,导致刚上线的站点三天就被植入挖矿脚本,SEO权重清零。今天这篇保姆级建站教程,不玩虚的,直接拆解【wo…

2026/9/27 0:48:03 阅读更多 →

日新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/26 22:52:30 阅读更多 →