编程模拟自然(二):仿人工拼接碎片
序·女娲补天篇
另一个世界,擎天大柱倾倒,九州大地裂毁。
传有一个名叫 NvWa 的人,她炼出五色石补好了天空,万灵始得以安居。
...
第零章 需求分析
”一定要保证基类安全,这片天地是面向对象设计...要密切关注子类受波及的蔓延态势。“
事发两刻钟后,NvWa 接到了通知,当即成立了抢险指挥部并做了重要发言。
”天阙碎片散落人间,但有上古架构师盘古留下的设计文档,只要收集齐天地碎片并用五色石加以炼化就可以复原天空。“
NvWa 仔细听取了现场工程人员的说明。
”立刻落实碎片和五彩石收集工作,大家要在最短时间内完成代码重构,上下一心,尽最大努力挽回不必要的损失。“
NvWa 对现场的应急小组下达了指令。
...
碎片全部收集完毕。
图2-1 图像碎片
第一章 预处理
把碎片颜色信息二值化,即将图像上的像素点的灰度值设置为 0 或 255。
二值化
图像呈现出明显的只有黑和白的视觉效果
图2-2 二值化
“一言不发架构师。”
第二章 特征提取
获取碎片边缘向量信息,分别用 0 和 1 标记白色和黑色。
图2-3 边缘特征提取
“/*不是每个编译器都能看到这句话。*/”
第三章 特征比对
通常来说,如果两个碎片相连,它们对应的边缘特征相似度也就越高。
比较向量的相似度
可以用余弦定理计算两个向量的相似度
图2-4 比对特征值
“天阙碎片封印的这段代码似乎是上古程序员写的注释。”
第四章 匹配空间
想象有个工作桌,左边是零散的未拼好的碎片,右边是已经拼了的碎片。
图2-5 空白
“我会编程一个美丽的公主哦。”
第五章 迭代匹配
有了上面想象的空间,每拼好一张,就在拼好的基础上继续迭代,拼好的一整块碎片就会慢慢变大直至拼接完成。
图2-6 拼接图像
“周五了,不知道明天会不会加班。”
第六章 人工干预
程序部分已经完了,有时受限于匹配条件,迭代可能会无限地进行下去,此时就需要人工干预。
图2-8 手动拼接
“不周山被撞导致天地崩落说明基类遭到破坏的后果是灾难性的。”NvWa 在周六的灾后重建会议上发表重要讲话。
后记
“...元纪 24 年 6 月 5 日,星期天,天气晴。”
“...那只猿一动不动地蹲在树上,时间仿佛凝固了一万年,斜阳下是它以 PI/4 弧度仰望天空的剪影...”
...
“...10024 年 6 月 5 日...我们再也没见过那个猿,大概是从天空出现一道裂缝那天起...”
--《夏の日记》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?