diff --git a/.obsidian/hotkeys.json b/.obsidian/hotkeys.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/.obsidian/hotkeys.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/.obsidian/templates.json b/.obsidian/templates.json
index cda2aca..97da61f 100644
--- a/.obsidian/templates.json
+++ b/.obsidian/templates.json
@@ -1,3 +1,4 @@
{
- "folder": "templates"
+ "folder": "03-资源/模板文件",
+ "dateFormat": "YYYYMMDD"
}
\ No newline at end of file
diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json
index 4419c37..dbd26b1 100644
--- a/.obsidian/workspace.json
+++ b/.obsidian/workspace.json
@@ -4,31 +4,17 @@
"type": "split",
"children": [
{
- "id": "b60c4f1b74858e26",
+ "id": "e8c82a2cdbb2272f",
"type": "tabs",
"children": [
{
- "id": "475df7806593502f",
+ "id": "db18e826419dedf4",
"type": "leaf",
"state": {
- "type": "markdown",
- "state": {
- "file": "01-项目/2025-MaixCam竞赛版/模块-程序控制-文档说明.md",
- "mode": "source",
- "source": false,
- "backlinks": true,
- "backlinkOpts": {
- "collapseAll": false,
- "extraContext": false,
- "sortOrder": "alphabetical",
- "showSearch": false,
- "searchQuery": "",
- "backlinkCollapsed": false,
- "unlinkedCollapsed": true
- }
- },
+ "type": "empty",
+ "state": {},
"icon": "lucide-file",
- "title": "模块-程序控制-文档说明"
+ "title": "新标签页"
}
}
]
@@ -63,7 +49,7 @@
"state": {
"type": "search",
"state": {
- "query": "tag:#知识点/配置 实验室",
+ "query": "find_blobs",
"matchingCase": true,
"explainSearch": false,
"collapseAll": false,
@@ -210,44 +196,46 @@
"zk-prefixer:创建时间戳笔记": false
}
},
- "active": "475df7806593502f",
+ "active": "db18e826419dedf4",
"lastOpenFiles": [
- "01-项目/2025-MaixCam竞赛版/模块-参数调试-文档说明.md",
- "01-项目/2025-MaixCam竞赛版/模块-程序控制-文档说明.md",
+ "01-项目/2025-MaixCam竞赛版/需求-色块合并.md",
+ "01-项目/2025-MaixCam竞赛版/需求-程序更新渠道.md",
+ "01-项目/2025-MaixCam竞赛版/需求-控制SK9822灯带.md",
"01-项目/2025-MaixCam竞赛版/项目需求.md",
- "01-项目/2025-MaixCam竞赛版/项目配置.md",
- "01-项目/2026-新知识融合/项目配置.md",
- "01-项目/2025-Obsidian知识架构/项目需求.md",
- "01-项目/2025-Obsidian知识架构/项目配置.md",
- "01-项目/2025-MaixCam竞赛版/项目Bug清单.md",
+ "05-原子化笔记本/MaixCam-find_blobs说明.md",
+ "01-项目/2025-MaixCam竞赛版/需求-忽略指定大小的色块.md",
+ "03-资源/模板文件/模板-原子化笔记-代码.md",
+ "03-资源/工具清单.md",
+ "03-资源/模板文件/模板-Bug修复.md",
+ "03-资源/模板文件/模板-需求.md",
+ "03-资源/模板文件/模板-豆包-DataView语法.md",
+ "03-资源/模板文件/模板-豆包-DataView归档.md",
+ "03-资源/模板文件/模板-豆包-文档整理.md",
+ "03-资源/模板文件/模板-豆包-翻译内容.md",
+ "03-资源/模板文件/模板-备忘.md",
+ "01-项目/2025-MaixCam竞赛版/需求-OCR补丁.md",
+ "00-临时碎片/20260108-备忘-工具技巧-痛点收集.md",
+ "00-临时碎片/20260107-备忘-MaixCam-需求简报.md",
"01-项目/2026-新知识融合/模块-多媒体-清单.md",
- "01-项目/2026-人工智能/项目配置.md",
- "00-临时碎片文件夹/20260102-备忘-魔搭-模型部署.md",
- "01-项目/2026-人工智能/项目需求.md",
- "01-项目/2026-人工智能/项目总结.md",
- "01-项目/2026-人工智能/项目Bug清单.md",
- "01-项目/2026-人工智能",
- "00-临时碎片文件夹/20260101-备忘-清单.md",
- "01-项目/2026-新知识融合/项目总结.md",
- "01-项目/2026-新知识融合/项目需求.md",
- "01-项目/2026-新知识融合/项目Bug清单.md",
- "01-项目/2026-新知识融合",
"02-领域/知识架构/领域知识地图.md",
- "01-项目/2025-MaixCam竞赛版-程序控制/项目Bug清单.md",
- "01-项目/2025-MaixCam竞赛版-程序控制/项目总结.md",
- "01-项目/2025-MaixCam竞赛版-程序控制/项目需求.md",
- "01-项目/2025-MaixCam竞赛版-程序控制/项目配置.md",
- "01-项目/2025-Obsidian知识架构/项目总结.md",
- "01-项目/2025-Obsidian知识架构/项目Bug清单.md",
- "02-领域/DataView/领域知识地图.md",
- "attachments/Pasted image 20251231090751.png",
- "01-项目/2025-MaixCam竞赛版-程序控制",
- "快速检索.md.baiduyun.uploading.cfg",
+ "05-原子化笔记本/知识架构-标签配置.md",
+ "05-原子化笔记本/工具技巧-edge兼容性.md",
+ "05-原子化笔记本/MaixCam-RGB转LAB.md",
+ "05-原子化笔记本/Python-排序.md",
+ "00-临时碎片/20260107-备忘-主题名-文件内容.md",
+ "00-临时碎片/20260107-备忘-内容整理产物.md",
+ "02-领域/Python",
+ "attachments/Pasted image 20260106165348.png",
+ "未命名.base",
+ "attachments/未命名.canvas",
+ "03-资源/模板文件",
+ "02-领域/工具技巧",
+ "00-临时碎片/未命名.md.baiduyun.uploading.cfg",
+ "00-临时碎片/未命名 1.md.baiduyun.uploading.cfg",
+ "01-项目/2025-MaixCam竞赛版/模块-程序控制-文档说明.md.baiduyun.uploading.cfg",
+ "templates/模板-备忘.md.baiduyun.uploading.cfg",
"templates/模板-需求.md.baiduyun.uploading.cfg",
- "templates/模板-开发任务.md.baiduyun.uploading.cfg",
- "templates/模板-学习笔记.md.baiduyun.uploading.cfg",
"templates/模板-原子化笔记.md.baiduyun.uploading.cfg",
- "templates/模板-信息记录.md.baiduyun.uploading.cfg",
- "templates/模板-Bug修复.md.baiduyun.uploading.cfg"
+ "attachments/Pasted image 20251231090751.png"
]
}
\ No newline at end of file
diff --git a/.obsidian/workspaces.json b/.obsidian/workspaces.json
index 8f7c515..5f313aa 100644
--- a/.obsidian/workspaces.json
+++ b/.obsidian/workspaces.json
@@ -1,4 +1,287 @@
{
- "workspaces": {},
- "active": "2"
+ "workspaces": {
+ "\"碎片<->模板\"反馈流": {
+ "main": {
+ "id": "12b4064ee8da62c7",
+ "type": "split",
+ "children": [
+ {
+ "id": "fd0f44ad6144a99b",
+ "type": "tabs",
+ "children": [
+ {
+ "id": "81ff36a5ffce86f7",
+ "type": "leaf",
+ "state": {
+ "type": "markdown",
+ "state": {
+ "file": "00-临时碎片/20260105-需求-MaixCam竞赛版-色块合并.md",
+ "mode": "source",
+ "source": false,
+ "backlinks": true,
+ "backlinkOpts": {
+ "collapseAll": false,
+ "extraContext": false,
+ "sortOrder": "alphabetical",
+ "showSearch": false,
+ "searchQuery": "",
+ "backlinkCollapsed": false,
+ "unlinkedCollapsed": true
+ }
+ },
+ "icon": "lucide-file",
+ "title": "20260105-需求-MaixCam竞赛版-色块合并"
+ }
+ }
+ ]
+ },
+ {
+ "id": "490c23b18726545e",
+ "type": "split",
+ "children": [
+ {
+ "id": "4175a3a90d742b0e",
+ "type": "tabs",
+ "children": [
+ {
+ "id": "9d1364db59b5b704",
+ "type": "leaf",
+ "state": {
+ "type": "markdown",
+ "state": {
+ "file": "00-临时碎片/20260105-需求-MaixCam竞赛版-色块合并.md",
+ "mode": "source",
+ "source": false,
+ "backlinks": true,
+ "backlinkOpts": {
+ "collapseAll": false,
+ "extraContext": false,
+ "sortOrder": "alphabetical",
+ "showSearch": false,
+ "searchQuery": "",
+ "backlinkCollapsed": false,
+ "unlinkedCollapsed": true
+ }
+ },
+ "icon": "lucide-file",
+ "title": "20260105-需求-MaixCam竞赛版-色块合并"
+ }
+ }
+ ]
+ },
+ {
+ "id": "7d5a0d02fd92fb60",
+ "type": "tabs",
+ "children": [
+ {
+ "id": "a8e7cf27fb6520a3",
+ "type": "leaf",
+ "state": {
+ "type": "markdown",
+ "state": {
+ "file": "templates/模板-需求.md",
+ "mode": "source",
+ "source": false,
+ "backlinks": true,
+ "backlinkOpts": {
+ "collapseAll": false,
+ "extraContext": false,
+ "sortOrder": "alphabetical",
+ "showSearch": false,
+ "searchQuery": "",
+ "backlinkCollapsed": false,
+ "unlinkedCollapsed": true
+ }
+ },
+ "icon": "lucide-file",
+ "title": "模板-需求"
+ }
+ }
+ ]
+ }
+ ],
+ "direction": "horizontal"
+ }
+ ],
+ "direction": "vertical"
+ },
+ "left": {
+ "id": "336d2a6b274ef719",
+ "type": "split",
+ "children": [
+ {
+ "id": "aa680c35a6a2a492",
+ "type": "tabs",
+ "children": [
+ {
+ "id": "4fd243e680befac5",
+ "type": "leaf",
+ "state": {
+ "type": "file-explorer",
+ "state": {
+ "sortOrder": "alphabetical",
+ "autoReveal": false
+ },
+ "icon": "lucide-folder-closed",
+ "title": "文件列表"
+ }
+ },
+ {
+ "id": "87214c8d838ba29e",
+ "type": "leaf",
+ "state": {
+ "type": "search",
+ "state": {
+ "query": "tag:#需求",
+ "matchingCase": true,
+ "explainSearch": false,
+ "collapseAll": false,
+ "extraContext": false,
+ "sortOrder": "alphabetical"
+ },
+ "icon": "lucide-search",
+ "title": "搜索"
+ }
+ },
+ {
+ "id": "b49f5e211b74c5c6",
+ "type": "leaf",
+ "state": {
+ "type": "bookmarks",
+ "state": {},
+ "icon": "lucide-bookmark",
+ "title": "书签"
+ }
+ }
+ ]
+ }
+ ],
+ "direction": "horizontal",
+ "width": 367.5
+ },
+ "right": {
+ "id": "bcd5a1ddf3bf1e55",
+ "type": "split",
+ "children": [
+ {
+ "id": "de6382cd433e8416",
+ "type": "tabs",
+ "children": [
+ {
+ "id": "5c938eb0880f619c",
+ "type": "leaf",
+ "state": {
+ "type": "backlink",
+ "state": {
+ "file": "README.md",
+ "collapseAll": false,
+ "extraContext": false,
+ "sortOrder": "alphabetical",
+ "showSearch": false,
+ "searchQuery": "",
+ "backlinkCollapsed": false,
+ "unlinkedCollapsed": true
+ },
+ "icon": "links-coming-in",
+ "title": "README 的反向链接列表"
+ }
+ },
+ {
+ "id": "efac76290bc96c26",
+ "type": "leaf",
+ "state": {
+ "type": "outgoing-link",
+ "state": {
+ "file": "README.md",
+ "linksCollapsed": false,
+ "unlinkedCollapsed": true
+ },
+ "icon": "links-going-out",
+ "title": "README 的出链列表"
+ }
+ },
+ {
+ "id": "7999a438f18b01e7",
+ "type": "leaf",
+ "state": {
+ "type": "tag",
+ "state": {
+ "sortOrder": "frequency",
+ "useHierarchy": true,
+ "showSearch": false,
+ "searchQuery": ""
+ },
+ "icon": "lucide-tags",
+ "title": "标签"
+ }
+ },
+ {
+ "id": "f6d74e23774b6a7c",
+ "type": "leaf",
+ "state": {
+ "type": "all-properties",
+ "state": {
+ "sortOrder": "frequency",
+ "showSearch": false,
+ "searchQuery": ""
+ },
+ "icon": "lucide-archive",
+ "title": "添加笔记属性"
+ }
+ },
+ {
+ "id": "e033c7e7c3201a5a",
+ "type": "leaf",
+ "state": {
+ "type": "outline",
+ "state": {
+ "file": "README.md",
+ "followCursor": false,
+ "showSearch": false,
+ "searchQuery": ""
+ },
+ "icon": "lucide-list",
+ "title": "README 的大纲"
+ }
+ },
+ {
+ "id": "ed4ec91565ef0c9b",
+ "type": "leaf",
+ "state": {
+ "type": "footnotes",
+ "state": {
+ "file": "README.md"
+ },
+ "icon": "lucide-file-signature",
+ "title": "脚注"
+ }
+ }
+ ]
+ }
+ ],
+ "direction": "horizontal",
+ "width": 300,
+ "collapsed": true
+ },
+ "left-ribbon": {
+ "hiddenItems": {
+ "templater-obsidian:Templater": false,
+ "switcher:打开快速切换": false,
+ "graph:查看关系图谱": false,
+ "canvas:新建白板": false,
+ "daily-notes:打开/创建今天的日记": false,
+ "templates:插入模板": false,
+ "command-palette:打开命令面板": false,
+ "bases:创建新数据库": false,
+ "workspaces:管理工作区布局": false,
+ "audio-recorder:开始/结束录音": false,
+ "random-note:开始漫游笔记": false,
+ "zk-prefixer:创建时间戳笔记": false
+ }
+ },
+ "active": "a8e7cf27fb6520a3",
+ "mtime": "2026-01-06T10:32:03+08:00"
+ }
+ },
+ "active": "\"碎片<->模板\"反馈流"
}
\ No newline at end of file
diff --git a/01-项目/2025-MaixCam竞赛版/需求-OCR补丁.md b/01-项目/2025-MaixCam竞赛版/需求-OCR补丁.md
new file mode 100644
index 0000000..d4db20d
--- /dev/null
+++ b/01-项目/2025-MaixCam竞赛版/需求-OCR补丁.md
@@ -0,0 +1,59 @@
+ #需求/禅道
+
+20260107-需求-主题名-文件内容
+
+## 标签类别
+
+临时类
+- [x] 临时/需求
+
+需求类
+- [ ] 需求/碎片
+- [ ] 需求/评估
+- [x] 需求/禅道
+- [ ] 需求/原子化
+- [ ] 需求/关闭
+
+## 模板变更
+- 20260106(`v1.0.6)`:标签类别、需求描述、初步评估、建议操作
+- 20260105(`v1.0.5`):增加一句话描述
+- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
+
+---
+
+## 一句话描述
+
+[_增加拍照、OCR补丁_____]
+
+## 基本信息
+
+### 需求描述
+
+涉及内容:[_读取指令、存储图像、补丁状态管理_____]
+
+涉及知识:[__图像的存储______]
+
+检查任务队列是否满足“三清”标准:
+- 来源清:[__OCR检测____] 驱动
+- 目的清:解决的[_OCR检测不稳定____] 问题,服务于 [_OCR目标检测__]
+- 状态清:[__进行中______]
+
+(谁/什么驱动的?)(解决什么问题?服务哪个目标?)(进行中/等待/阻塞)
+
+### 初步评估
+
+方案简述:[__拍照后交由补丁算法进行识别______]
+
+预估时间:[__3______] h
+
+## 建议操作
+
+1. [__增加拍照指令,存储三张照片______]
+2. [__启动OCR补丁算法,读取第一张图片进行处理______]
+3. [__色差转换、裁剪等操作______]
+4. [__提交识别集、最大概率结果到缓存区______]
+5. [__交由应答程序处理缓存区______]
+
+### 关联资源
+
+- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
diff --git a/01-项目/2025-MaixCam竞赛版/需求-优化启动速度.md b/01-项目/2025-MaixCam竞赛版/需求-优化启动速度.md
new file mode 100644
index 0000000..08a7ce5
--- /dev/null
+++ b/01-项目/2025-MaixCam竞赛版/需求-优化启动速度.md
@@ -0,0 +1,33 @@
+#需求/禅道
+
+20260105-需求-主题名-文件内容
+## 模板变更
+- 20260105(`v1.0.5`):增加一句话描述
+- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
+- 20251231(`v1.0.3`):增加关联模板
+
+---
+
+## 一句话描述
+
+摄像头启动和程序启动速度慢
+
+## 基本信息
+
+### 需求描述
+
+优化启动画面
+1. 查询资料编译自定义系统
+2. 询问官方途径
+
+程序启动速度
+1. 评估启动速度
+2. 尝试开机优先启动画面来提升用户感受
+
+### 初步评估
+
+需要排查评估,预估开发时间未知
+
+### 关联资源
+
+- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
diff --git a/01-项目/2025-MaixCam竞赛版/需求-忽略指定大小的色块.md b/01-项目/2025-MaixCam竞赛版/需求-忽略指定大小的色块.md
new file mode 100644
index 0000000..918af83
--- /dev/null
+++ b/01-项目/2025-MaixCam竞赛版/需求-忽略指定大小的色块.md
@@ -0,0 +1,60 @@
+#需求/禅道
+
+20260108-需求-主题名-文件内容
+
+## 标签类别
+
+临时类
+- [ ] 临时/需求
+
+需求类
+- [ ] 需求/碎片
+- [ ] 需求/评估
+- [x] 需求/禅道
+- [ ] 需求/原子化
+- [ ] 需求/关闭
+- [ ] 需求/取消
+
+## 模板变更
+- 20260106(`v1.0.6)`:标签类别、需求描述、初步评估、建议操作
+- 20260105(`v1.0.5`):增加一句话描述
+- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
+
+---
+
+## 一句话描述
+
+[_忽略指定大小的色块(需考虑分辨率、缩放比例、宽、高不一致的情况_____]
+
+## 基本信息
+
+### 需求描述
+
+涉及内容:[_色块识别算法参数设置_____]
+
+涉及知识:
+- [[MaixCam-find_blobs说明]]:area_threshold、pixels_threshold
+
+检查任务队列是否满足“三清”标准:
+- 来源清:[__色块识别检测____] 驱动
+- 目的清:解决的[_杂乱小色块____] 问题,服务于 [_色块识别检测__]
+- 状态清:[__进行中______]
+
+(谁/什么驱动的?)(解决什么问题?服务哪个目标?)(进行中/等待/阻塞)
+
+### 初步评估
+
+方案简述:[__暴露参数设置______]
+
+预估时间:[__1______] h
+
+## 建议操作
+
+1. [__暴露参数给参数调试______]
+2. [__使用参数调试测试效果______]
+3. [__暴露参数给程序控制______]
+4. [__更新操作说明______]
+
+### 关联资源
+
+- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
diff --git a/01-项目/2025-MaixCam竞赛版/需求-控制SK9822灯带.md b/01-项目/2025-MaixCam竞赛版/需求-控制SK9822灯带.md
new file mode 100644
index 0000000..3b968c3
--- /dev/null
+++ b/01-项目/2025-MaixCam竞赛版/需求-控制SK9822灯带.md
@@ -0,0 +1,63 @@
+#需求/取消
+
+20260107-需求-主题名-文件内容
+
+## 标签类别
+
+临时类
+- [ ] 临时/需求
+
+需求类
+- [ ] 需求/碎片
+- [ ] 需求/评估
+- [ ] 需求/禅道
+- [ ] 需求/原子化
+- [ ] 需求/关闭
+- [x] 需求/取消
+
+## 模板变更
+- 20260106(`v1.0.6)`:标签类别、需求描述、初步评估、建议操作
+- 20260105(`v1.0.5`):增加一句话描述
+- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
+
+---
+
+## 一句话描述
+
+[_MaixCam控制SK9822灯带_____]
+
+已完成初步测试:[初步实现-禅道](https://zentao.juecha.fun/index.php?m=projectstory&f=view&storyID=56&projectID=44)
+
+## 基本信息
+
+### 需求描述
+
+涉及内容:[_MaixCam、SK9822_____]
+
+涉及知识:
+- [__SPI______]
+- [初步实现-禅道](https://zentao.juecha.fun/index.php?m=projectstory&f=view&storyID=56&projectID=44)
+
+检查任务队列是否满足“三清”标准:
+- 来源清:[__物理上需要控制SK9822____] 驱动
+- 目的清:解决的[_摄像头补光问题____] 问题,服务于 [_摄像头受光线影响__]
+- 状态清:[__进行中______]
+
+(谁/什么驱动的?)(解决什么问题?服务哪个目标?)(进行中/等待/阻塞)
+
+### 初步评估
+
+方案简述:[__尝试使用 GPIO;尝试使用 SPI;______]
+
+预估时间:[__3______] h
+
+## 建议操作
+
+1. [__了解MaixCam硬件引脚______]
+2. [___使用 GPIO_____]
+3. [___使用SPI_____]
+4. [___封装代码_____]
+
+### 关联资源
+
+- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
diff --git a/01-项目/2025-MaixCam竞赛版/需求-程序更新渠道.md b/01-项目/2025-MaixCam竞赛版/需求-程序更新渠道.md
new file mode 100644
index 0000000..da169f5
--- /dev/null
+++ b/01-项目/2025-MaixCam竞赛版/需求-程序更新渠道.md
@@ -0,0 +1,58 @@
+#需求/评估
+
+20260105-需求-主题名-文件内容
+
+## 标签类别
+
+临时类
+- [x] 临时/需求
+
+需求类
+- [x] 需求/碎片
+- [ ] 需求/评估
+- [ ] 需求/禅道
+- [ ] 需求/原子化
+- [ ] 需求/关闭
+
+## 模板变更
+- 20260106(`v1.0.6)`:标签类别、需求描述、初步评估、建议操作
+- 20260105(`v1.0.5`):增加一句话描述
+- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
+
+---
+
+## 一句话描述
+
+[_用户更新程序的方式途径_____]
+
+## 基本信息
+
+### 需求描述
+
+涉及内容:[_提供程序更新入口给用户_____]
+
+涉及知识:[__MaixCam通讯机制______]
+
+检查任务队列是否满足“三清”标准:
+- 来源清:[__程序升级迭代____] 驱动
+- 目的清:解决的[_用户升级最新程序操作繁琐____] 问题,服务于 [_程序升级后边缘设备能够加载最新版本__]
+- 状态清:[__进行中______]
+
+(谁/什么驱动的?)(解决什么问题?服务哪个目标?)(进行中/等待/阻塞)
+
+### 初步评估
+
+方案简述:[__Windows与MaixCam通讯,尝试脚本发送、执行等操作______]
+
+预估时间:[__3______] h
+
+## 建议操作
+
+1. [__先了解MaixCam的程序运行机制______]
+2. [___将程序文件发送给MaixCam_____]
+3. [___执行覆盖更新的操作_____]
+4. [___更新失败后回退_____]
+
+### 关联资源
+
+- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
diff --git a/01-项目/2025-MaixCam竞赛版/需求-色块合并.md b/01-项目/2025-MaixCam竞赛版/需求-色块合并.md
new file mode 100644
index 0000000..851511b
--- /dev/null
+++ b/01-项目/2025-MaixCam竞赛版/需求-色块合并.md
@@ -0,0 +1,58 @@
+#需求/关闭
+
+20260105-需求-主题名-文件内容
+
+## 标签类别
+
+临时类
+- [x] 临时/需求
+
+需求类
+- [x] 需求/碎片
+- [ ] 需求/评估
+- [ ] 需求/禅道
+
+## 模板变更
+- 20260106(`v1.0.6)`:标签类别、需求描述、初步评估、建议操作
+- 20260105(`v1.0.5`):增加一句话描述
+- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
+
+---
+
+## 一句话描述
+
+将相邻的两个色块识别为一个目标
+
+## 基本信息
+
+### 需求描述
+
+涉及内容:[__程序控制模块、参数调试模块、______]
+
+涉及知识:[__寻找色块算法参数______]
+
+检查任务队列是否满足“三清”标准:
+- 来源清:[__相邻色块______] 驱动
+- 目的清:解决的[_色块算法检测结果合并参数固定_____] 问题,服务于 [_自定义控制合并范围___]
+- 状态清:[__进行中______]
+
+(谁/什么驱动的?)(解决什么问题?服务哪个目标?)(进行中/等待/阻塞)
+
+### 初步评估
+
+方案简述:[__暴露色块合并参数______]
+
+预估时间:[__2______] h
+
+## 建议操作
+
+1. 查询色块方法参数
+2. 暴露出合并参数给用户
+ 1. 暴露给参数调试
+ 2. 暴露给程序控制
+
+### 关联资源
+
+- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
+- [[MaixCam-find_blobs说明]]
+
diff --git a/01-项目/2025-MaixCam竞赛版/项目需求.md b/01-项目/2025-MaixCam竞赛版/项目需求.md
index 2ac589c..0ff3469 100644
--- a/01-项目/2025-MaixCam竞赛版/项目需求.md
+++ b/01-项目/2025-MaixCam竞赛版/项目需求.md
@@ -1,4 +1,26 @@
-[项目工作空间](https://zentao.juecha.fun/index.php?m=project&f=index&project=44)
+```dataview
+TABLE without ID
+link(file.path, file.name) as "文件名", filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态", file.mtime AS "最后修改时间"
+FROM "01-项目/2025-MaixCam竞赛版"
+WHERE startswith(file.name, "需求") and any(file.tags, (t)=>t="#需求/评估")
+SORT file.mtime DESC
+```
+
+```dataview
+TABLE without ID
+link(file.path, file.name) as "文件名", filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态", file.mtime AS "最后修改时间"
+FROM "01-项目/2025-MaixCam竞赛版"
+WHERE startswith(file.name, "需求") and any(file.tags, (t)=>t="#需求/禅道")
+SORT file.mtime DESC
+```
+
+```dataview
+TABLE without ID
+link(file.path, file.name) as "文件名", filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态", file.mtime AS "最后修改时间"
+FROM "01-项目/2025-MaixCam竞赛版"
+WHERE startswith(file.name, "需求") and any(file.tags, (t)=>t="#需求/原子化")
+SORT file.mtime DESC
+```
diff --git a/01-项目/2026-新知识融合/模块-多媒体-清单.md b/01-项目/2026-新知识融合/模块-多媒体-清单.md
index 8f316c3..8abe121 100644
--- a/01-项目/2026-新知识融合/模块-多媒体-清单.md
+++ b/01-项目/2026-新知识融合/模块-多媒体-清单.md
@@ -10,3 +10,4 @@
- 灵魂摆渡
- 唐朝诡事录
- 潜伏
+- 晚酌的流派
diff --git a/02-领域/DataView/领域知识地图.md b/02-领域/DataView/领域知识地图.md
index 441dc97..42b83b1 100644
--- a/02-领域/DataView/领域知识地图.md
+++ b/02-领域/DataView/领域知识地图.md
@@ -1,2 +1,2 @@
-- [[DataView-文件夹下”需求“开头的文件]]
+- [[DataView-语法知识点]]
diff --git a/templates/2025-项目模板/项目Bug清单.md b/02-领域/MaixCam/MaixCam核心标准.md
similarity index 100%
rename from templates/2025-项目模板/项目Bug清单.md
rename to 02-领域/MaixCam/MaixCam核心标准.md
diff --git a/02-领域/Python/领域知识地图.md b/02-领域/Python/领域知识地图.md
new file mode 100644
index 0000000..1bc306b
--- /dev/null
+++ b/02-领域/Python/领域知识地图.md
@@ -0,0 +1,2 @@
+
+- [[Python-排序]]]
diff --git a/02-领域/工具技巧/领域知识地图.md b/02-领域/工具技巧/领域知识地图.md
new file mode 100644
index 0000000..0587bc8
--- /dev/null
+++ b/02-领域/工具技巧/领域知识地图.md
@@ -0,0 +1,2 @@
+
+- [[工具技巧-edge兼容性]]
diff --git a/templates/2025-项目模板/项目总结.md b/03-资源/工具清单.md
similarity index 100%
rename from templates/2025-项目模板/项目总结.md
rename to 03-资源/工具清单.md
diff --git a/templates/2025-项目模板/项目配置.md b/03-资源/教程-文档链接汇总.md
similarity index 100%
rename from templates/2025-项目模板/项目配置.md
rename to 03-资源/教程-文档链接汇总.md
diff --git a/templates/2025-项目模板/项目需求.md b/03-资源/模板文件/2025-项目模板/项目Bug清单.md
similarity index 100%
rename from templates/2025-项目模板/项目需求.md
rename to 03-资源/模板文件/2025-项目模板/项目Bug清单.md
diff --git a/03-资源/模板文件/2025-项目模板/项目总结.md b/03-资源/模板文件/2025-项目模板/项目总结.md
new file mode 100644
index 0000000..e69de29
diff --git a/03-资源/模板文件/2025-项目模板/项目配置.md b/03-资源/模板文件/2025-项目模板/项目配置.md
new file mode 100644
index 0000000..e69de29
diff --git a/03-资源/模板文件/2025-项目模板/项目需求.md b/03-资源/模板文件/2025-项目模板/项目需求.md
new file mode 100644
index 0000000..e69de29
diff --git a/templates/模板-Bug修复.md b/03-资源/模板文件/模板-Bug修复.md
similarity index 53%
rename from templates/模板-Bug修复.md
rename to 03-资源/模板文件/模板-Bug修复.md
index bb7fddd..450fc50 100644
--- a/templates/模板-Bug修复.md
+++ b/03-资源/模板文件/模板-Bug修复.md
@@ -1,18 +1,33 @@
#临时/Bug
+
+{{date}}-Bug-主题名-文件内容
## 模板变更
+- 20260105(`1.0.1`):增加分割线和一句话描述
- 20251230:新增待修订版本
- 20251230:模板创建
-待修订版本:`xxx-v`
+---
+
+## 一句话描述
+
+这是一个Bug修复的模板
## 一、原始Bug记录
-...(原有内容)
+
+[步骤]
+
+[结果]
+
+[期望]
## 二、信息检索操作
+
...(原有内容)
## 三、提问优化内容
+
...(原有内容)
-## 四、AI解答核心内容(新增区块,极简记录)
+## 四、AI解答核心内容
+
...(原有内容)
\ No newline at end of file
diff --git a/templates/模板-原子化笔记.md b/03-资源/模板文件/模板-原子化笔记-代码.md
similarity index 79%
rename from templates/模板-原子化笔记.md
rename to 03-资源/模板文件/模板-原子化笔记-代码.md
index 1f20737..555c200 100644
--- a/templates/模板-原子化笔记.md
+++ b/03-资源/模板文件/模板-原子化笔记-代码.md
@@ -1,8 +1,18 @@
#领域/MaixCam
+{{date}}-原子化笔记-主题名-文件内容
## 模板变更
+- 20260105(`v1.0.1`):增加一句话描述和分割线
- 20251230(`v1.0.0`):模板创建
+注释:**1-3 句话的核心逻辑 + 代码片段**
+
+---
+
+## 一句话描述
+
+[__这是一个原子化笔记文件的模板______]
+
## 核心定义
触摸屏支持分辨率为 552 x 368 分辨率,菜单控件的更新操作和屏幕显示之间不建议插入其他代码,以免菜单显示错位
diff --git a/03-资源/模板文件/模板-备忘.md b/03-资源/模板文件/模板-备忘.md
new file mode 100644
index 0000000..8a8cd73
--- /dev/null
+++ b/03-资源/模板文件/模板-备忘.md
@@ -0,0 +1,13 @@
+#临时/备忘
+
+{{date}}-备忘-主题名-文件内容
+## 模板变更
+- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
+- 20260105(`v1.0.0`):模板创建
+
+---
+
+## 一句话描述
+
+[________]
+
diff --git a/03-资源/模板文件/模板-豆包-DataView归档.md b/03-资源/模板文件/模板-豆包-DataView归档.md
new file mode 100644
index 0000000..99d5130
--- /dev/null
+++ b/03-资源/模板文件/模板-豆包-DataView归档.md
@@ -0,0 +1,75 @@
+#临时/备忘
+
+{{date}}-备忘-主题名-文件内容
+## 模板变更
+- 20260107(`v1.0.2`):输出格式说明
+- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
+- 20260105(`v1.0.0`):模板创建
+
+注意:请忽略以上内容
+
+---
+
+## 输入内容
+
+```dataview
+TABLE without ID
+link(file.path, file.name) as "文件名", filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态", file.mtime AS "最后修改时间"
+FROM "01-项目/2025-MaixCam竞赛版"
+WHERE startswith(file.name, "需求") and any(file.tags, (t)=>startswith(t, "#需求/"))
+SORT file.mtime DESC
+```
+
+## 操作需求
+需要进行如下操作
+- [x] 输入内容整理归档为知识点
+
+## 输出格式
+
+- [x] markdown 表格
+
+| 语法模块 | 说明 | 示例 |
+| ------------------------------------------------------ | ------------------------------------------------- | -------------------------------------------------------------------- |
+| `TABLE without ID` | 生成无默认序号列的 Dataview 表格,仅显示自定义配置的列 | `TABLE without ID` |
+| `filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态"` | 从文件的所有标签中,筛选出以 `#需求/` 为前缀的标签(过滤无关标签),并指定列标题为 “状态” | 若文件标签为 `#需求/已完成 #笔记 #需求/待开发`,筛选结果为 `["#需求/已完成", "#需求/待开发"]` |
+| `file.mtime AS "最后修改时间"` | 提取文件的最后修改时间(系统记录的文件更新时间),并指定列标题为 “最后修改时间” | `file.mtime AS "最后修改时间"` → 表格中显示格式如「2026-01-07 16:45:30」的时间 |
+| `FROM "01-项目/2025-MaixCam竞赛版"` | 指定 Dataview 查询的数据来源文件夹,仅查询该路径下的所有文件 | `FROM "01-项目/2025-MaixCam竞赛版"` |
+| `startswith(file.name, "需求")` | 筛选文件名以 “需求” 开头的文件,精准匹配目标需求文档 | `startswith(file.name, "需求")` → 匹配「需求 - 图像识别功能.md」,不匹配「文档 - 需求清单.md」 |
+- [x] markdown - plaintext
+
+```plaintext
+#领域/DataView
+
+## 一句话描述
+
+整理归档 DataView 语法知识点
+
+## 知识点开始
+
+| 语法模块 | 说明 | 示例 |
+| ------------------------------------------------------ | --------------------------------------------- | ----------------------------------------------------------- |
+| `TABLE without ID` | 生成无默认序号列的 Dataview 表格,仅显示自定义配置的列 | `TABLE without ID 列1, 列2 AS "自定义标题"` |
+| `link(file.path, file.name) as "文件名"` | 将文件路径转为可点击链接,显示文本为文件名,指定列标题为 “文件名” | `link(file.path, file.name) as "文件名"` → 表格中显示可跳转的文件名称链接 |
+| `filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态"` | 从文件所有标签中筛选以 `#需求/` 为前缀的标签(过滤无关标签),指定列标题为 “状态” | 若文件标签为 `#需求/已完成 #笔记 #需求/待开发`,筛选结果为 `["#需求/已完成", "#需求/待开发"]` |
+| `file.mtime AS "最后修改时间"` | 提取文件系统记录的最后修改时间,指定列标题为 “最后修改时间” | `file.mtime AS "最后修改时间"` → 显示格式如「2026-01-07 16:45:30」的时间 |
+| `FROM "01-项目/2025-MaixCam竞赛版"` | 指定 Dataview 查询的数据来源文件夹,仅查询该路径下的文件 | `FROM "01-项目/2025-MaixCam竞赛版"` → 仅检索该文件夹内所有文件 |
+| `startswith(file.name, "需求")` | 筛选文件名以 “需求” 开头的文件,精准匹配目标需求文档 | 匹配「需求 - 图像识别功能.md」,不匹配「文档 - 需求清单.md」 |
+| `any(file.tags, (t)=>startswith(t, "#需求/"))` | 判断文件是否存在以 `#需求/` 为前缀的标签,返回布尔值(用于筛选文件) | 存在符合标签则保留文件,无则排除 |
+
+## 知识点结束
+
+```
+
+## 注意
+1. 请判断勾选框是否处于被勾选状态,例如json勾选框处于未被勾选状态,则无需输出json格式
+2. 我希望复制后,能够直接插入markdown,所以你要注意格式排版,例如使用markdown显示后,使用plaintext包裹显示完整的markdown语句
+3. 考虑到操作方便,需要在 plaintext 包裹的内容内添加 “知识点开始”、“知识点结束”的标识
+4. 若`已归档内容`部分不为空,你需要将新归纳的内容合并到已归档内容中
+
+---
+
+## 已归档内容
+
+- [[DataView-语法知识点]]
+
+
diff --git a/03-资源/模板文件/模板-豆包-DataView语法.md b/03-资源/模板文件/模板-豆包-DataView语法.md
new file mode 100644
index 0000000..000fac0
--- /dev/null
+++ b/03-资源/模板文件/模板-豆包-DataView语法.md
@@ -0,0 +1,45 @@
+#临时/备忘
+
+{{date}}-备忘-主题名-文件内容
+## 模板变更
+- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
+- 20260105(`v1.0.0`):模板创建
+
+注意:请忽略以上内容
+
+---
+
+## 输入内容
+
+查询:[__指定目录`00-文件夹/子文件夹1`下以文件名`需求`开头的文件______]
+
+展示:[__文件名、指定tag、最后修改时间______]
+
+## 操作需求
+
+需要进行如下操作
+- [x] dataview语法实现
+- [x] 表格查询
+- [ ] 列表查询
+
+## 输出格式
+
+- [x] markdown
+
+## 注意
+1. 请判断勾选框是否处于被勾选状态,例如json勾选框处于未被勾选状态,则无需输出json格式
+2. 我希望复制后,能够直接插入markdown,所以你要注意格式排版
+
+---
+
+注意:请忽略以下内容
+
+## 输出结果
+
+```dataview
+TABLE without ID
+link(file.path, file.name) as "文件名", filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态", file.mtime AS "最后修改时间"
+FROM "01-项目/2025-MaixCam竞赛版"
+WHERE startswith(file.name, "需求") and any(file.tags, (t)=>startswith(t, "#需求/"))
+SORT file.mtime DESC
+```
diff --git a/03-资源/模板文件/模板-豆包-文档整理.md b/03-资源/模板文件/模板-豆包-文档整理.md
new file mode 100644
index 0000000..b73250a
--- /dev/null
+++ b/03-资源/模板文件/模板-豆包-文档整理.md
@@ -0,0 +1,52 @@
+#临时/备忘
+
+{{date}}-备忘-主题名-文件内容
+## 模板变更
+- 20260107(`v1.0.2`):输出格式说明
+- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
+- 20260105(`v1.0.0`):模板创建
+
+注意:请忽略以上内容
+
+---
+
+## 操作需求
+需要进行如下操作
+- [x] 输入内容整理归纳至已归档内容
+
+## 输出格式
+
+- [x] markdown
+
+- [x] markdown - plaintext
+
+```plaintext
+#领域/DataView
+
+## 一句话描述
+
+整理归档内容
+
+## 内容开始
+
+归档整理的内容
+
+## 内容结束
+
+```
+
+## 注意
+1. 请判断勾选框是否处于被勾选状态,例如json勾选框处于未被勾选状态,则无需输出json格式
+2. 我希望复制后,能够直接插入markdown,所以你要注意格式排版,例如使用markdown显示后,使用plaintext包裹显示完整的markdown语句
+3. 考虑到操作方便,需要在 plaintext 包裹的内容内添加 “内容开始”、“内容结束”的标识
+4. 若`已归档内容`部分不为空,你需要将新归纳的内容合并到已归档内容中
+5. 在不偏离本意的前提下,你可以适当润色内容和格式
+
+---
+
+## 输入内容
+
+[________]
+
+## 已归档内容
+
diff --git a/03-资源/模板文件/模板-豆包-翻译内容.md b/03-资源/模板文件/模板-豆包-翻译内容.md
new file mode 100644
index 0000000..f03bc35
--- /dev/null
+++ b/03-资源/模板文件/模板-豆包-翻译内容.md
@@ -0,0 +1,49 @@
+#临时/备忘
+
+{{date}}-备忘-主题名-文件内容
+## 模板变更
+- 20260107(`v1.0.2`):输出格式说明
+- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
+- 20260105(`v1.0.0`):模板创建
+
+注意:请忽略以上内容
+
+---
+
+## 输入内容
+
+[____你叫什么名字____]
+
+## 操作需求
+需要进行如下操作
+- [ ] 翻译为中文
+- [x] 翻译为英文
+- [x] 翻译为法文
+- [ ] 翻译为德文
+
+## 输出格式
+
+- [x] markdown
+
+| 目标语言 | 翻译内容 |
+| ---- | ----------------- |
+| 英文 | What's your name? |
+| ... | ... |
+
+- [x] json
+```json
+{
+ "英文": "What's your name?",
+ "法文": "Comment t'appelles-tu ?"
+}
+```
+
+## 注意
+1. 请判断勾选框是否处于被勾选状态,例如json勾选框处于未被勾选状态,则无需输出json格式
+2. 我希望复制后,能够直接插入markdown,所以你要注意格式排版
+
+---
+
+注意:请忽略以下内容
+
+## 输出结果
diff --git a/03-资源/模板文件/模板-需求.md b/03-资源/模板文件/模板-需求.md
new file mode 100644
index 0000000..cfe2ca4
--- /dev/null
+++ b/03-资源/模板文件/模板-需求.md
@@ -0,0 +1,60 @@
+#临时/需求 #需求/碎片
+
+{{date}}-需求-主题名-文件内容
+
+## 标签类别
+
+临时类
+- [x] 临时/需求
+
+需求类
+- [x] 需求/碎片
+- [ ] 需求/评估
+- [ ] 需求/禅道
+- [ ] 需求/原子化
+- [ ] 需求/关闭
+- [ ] 需求/取消
+
+## 模板变更
+- 20260106(`v1.0.6)`:标签类别、需求描述、初步评估、建议操作
+- 20260105(`v1.0.5`):增加一句话描述
+- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
+
+---
+
+## 一句话描述
+
+[_用户更新程序的方式途径_____]
+
+## 基本信息
+
+### 需求描述
+
+涉及内容:[_提供程序更新入口给用户_____]
+
+涉及知识:[__MaixCam通讯机制______]
+
+检查任务队列是否满足“三清”标准:
+- 来源清:[__程序升级迭代____] 驱动
+- 目的清:解决的[_用户升级最新程序操作繁琐____] 问题,服务于 [_程序升级后边缘设备能够加载最新版本__]
+- 状态清:[__进行中______]
+
+(谁/什么驱动的?)(解决什么问题?服务哪个目标?)(进行中/等待/阻塞)
+
+### 初步评估
+
+方案简述:[__Windows与MaixCam通讯,尝试脚本发送、执行等操作______]
+
+预估时间:[__3______] h
+
+## 建议操作
+
+1. [________]
+2. [__先了解MaixCam的程序运行机制______]
+3. [___将程序文件发送给MaixCam_____]
+4. [___执行覆盖更新的操作_____]
+5. [___更新失败后回退_____]
+
+### 关联资源
+
+- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]
diff --git a/05-原子化笔记本/DataView-文件夹下”需求“开头的文件.md b/05-原子化笔记本/DataView-文件夹下”需求“开头的文件.md
deleted file mode 100644
index dec69aa..0000000
--- a/05-原子化笔记本/DataView-文件夹下”需求“开头的文件.md
+++ /dev/null
@@ -1,18 +0,0 @@
-#领域/DataView
-
-## 模板变更
-- 20251230(`v1.0.0`):模板创建
-
-# 核心定义
-
-```plain
-编写一个 dataview(Obsidian插件) 查询的示例,查询出指定文件夹下所有“需求”开头的文件
-```
-
-```dataview
-
-table
-from "00-临时碎片文件夹"
-where startswith(file.name, "需求")
-```
-
diff --git a/05-原子化笔记本/DataView-语法知识点.md b/05-原子化笔记本/DataView-语法知识点.md
new file mode 100644
index 0000000..09dfd12
--- /dev/null
+++ b/05-原子化笔记本/DataView-语法知识点.md
@@ -0,0 +1,19 @@
+#领域/DataView
+
+## 一句话描述
+
+整理归档 DataView 语法知识点
+
+## 知识点开始
+
+| 语法模块 | 说明 | 示例 |
+| ------------------------------------------------------ | --------------------------------------------- | ----------------------------------------------------------- |
+| `TABLE without ID` | 生成无默认序号列的 Dataview 表格,仅显示自定义配置的列 | `TABLE without ID 列1, 列2 AS "自定义标题"` |
+| `link(file.path, file.name) as "文件名"` | 将文件路径转为可点击链接,显示文本为文件名,指定列标题为 “文件名” | `link(file.path, file.name) as "文件名"` → 表格中显示可跳转的文件名称链接 |
+| `filter(file.tags, (t)=>startswith(t,"#需求/")) as "状态"` | 从文件所有标签中筛选以 `#需求/` 为前缀的标签(过滤无关标签),指定列标题为 “状态” | 若文件标签为 `#需求/已完成 #笔记 #需求/待开发`,筛选结果为 `["#需求/已完成", "#需求/待开发"]` |
+| `file.mtime AS "最后修改时间"` | 提取文件系统记录的最后修改时间,指定列标题为 “最后修改时间” | `file.mtime AS "最后修改时间"` → 显示格式如「2026-01-07 16:45:30」的时间 |
+| `FROM "01-项目/2025-MaixCam竞赛版"` | 指定 Dataview 查询的数据来源文件夹,仅查询该路径下的文件 | `FROM "01-项目/2025-MaixCam竞赛版"` → 仅检索该文件夹内所有文件 |
+| `startswith(file.name, "需求")` | 筛选文件名以 “需求” 开头的文件,精准匹配目标需求文档 | 匹配「需求 - 图像识别功能.md」,不匹配「文档 - 需求清单.md」 |
+| `any(file.tags, (t)=>startswith(t, "#需求/"))` | 判断文件是否存在以 `#需求/` 为前缀的标签,返回布尔值(用于筛选文件) | 存在符合标签则保留文件,无则排除 |
+
+## 知识点结束
diff --git a/05-原子化笔记本/MaixCam-find_blobs说明.md b/05-原子化笔记本/MaixCam-find_blobs说明.md
new file mode 100644
index 0000000..a081659
--- /dev/null
+++ b/05-原子化笔记本/MaixCam-find_blobs说明.md
@@ -0,0 +1,68 @@
+#领域/MaixCam
+
+20260105-备忘-主题名-文件内容
+## 模板变更
+- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
+- 20260105(`v1.0.0`):模板创建
+
+---
+
+## 一句话描述
+
+说明 Image.find_bobs 函数
+
+## 核心定义
+
+查找图像中的所有色块(blobs / 连通域),并返回一个 `image.Blob` 类的列表,每个 `image.Blob` 实例用于描述一个色块
+
+## 最小实现代码
+
+```python
+img = cam.read()
+...
+blobs = img.find_blobs((0, 100, -129, 129, -129, 129),
+ pixels_threshold=200,
+ merge=True,
+ margin=5
+)
+```
+
+## 函数定义
+
+```python
+def find_blobs(
+ self,
+ thresholds: list[list[int]] = [],
+ invert: bool = False,
+ roi: list[int] = [],
+ x_stride: int = 2,
+ y_stride: int = 1,
+ area_threshold: int = 10,
+ pixels_threshold: int = 10,
+ merge: bool = False,
+ margin: int = 0,
+ x_hist_bins_max: int = 0,
+ y_hist_bins_max: int = 0
+) -> list[Blob]:
+```
+
+## 参数说明
+
+| 参数名 | 描述 |
+| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| thresholds | 可定义多个阈值:
- 灰度(GRAYSCALE)格式:使用 `{{Lmin, Lmax}, ...}` 定义一个或多个阈值;
- RGB888 格式:使用 `{{Lmin, Lmax, Amin, Amax, Bmin, Bmax}, ...}` 定义一个或多个阈值;
其中大写 L/A/B 代表 LAB 图像格式的对应通道,min/max 代表对应通道的最小值和最大值。 |
+| invert | 若设为 True,会在查找色块前反转阈值,默认值为 False。 |
+| roi | 感兴趣区域(ROI),输入格式为 `(x, y, w, h)`:x 和 y 为左上角坐标,w 和 h 为 ROI 的宽度和高度;默认值为空列表,代表处理整张图像。 |
+| x_stride | X 方向步长,即执行霍夫变换时跳过的 X 方向像素数,默认值为 2。 |
+| y_stride | Y 方向步长,即执行霍夫变换时跳过的 Y 方向像素数,默认值为 1。 |
+| area_threshold | 面积阈值:若色块面积小于该值,则不返回该色块,默认值为 10。 |
+| pixels_threshold | 像素数阈值:若色块的像素数量小于该值,则不返回该色块,默认值为 10;
当 x_stride 和 y_stride 均为 1 时,该参数与 area_threshold 等效。 |
+| merge | 若设为 True,会合并所有未被过滤、且外接矩形相交的色块,默认值为 False。 |
+| margin | 边距:用于在相交检测时扩大 / 缩小色块外接矩形的尺寸;例如,边距设为 1 时,外接矩形间距为 1 像素的色块会被合并,默认值为 0。 |
+| x_hist_bins_max | 若设为非 0 值,会在每个色块对象中填充一个直方图缓冲区,存储该对象所有列的 X 方向直方图投影;该值用于设置投影的分箱数,默认值为 0。 |
+| y_hist_bins_max | 若设为非 0 值,会在每个色块对象中填充一个直方图缓冲区,存储该对象所有行的 Y 方向直方图投影;该值用于设置投影的分箱数,默认值为 0。 |
+
+## 关联资源
+
+- [MaixPy API - find_blobs](https://wiki.sipeed.com/maixpy/api/maix/image.html#find_blobs)
+
diff --git a/05-原子化笔记本/Python-排序.md b/05-原子化笔记本/Python-排序.md
new file mode 100644
index 0000000..a510447
--- /dev/null
+++ b/05-原子化笔记本/Python-排序.md
@@ -0,0 +1,108 @@
+#领域/Python
+
+20260108-原子化笔记-主题名-文件内容
+## 模板变更
+- 20260105(`v1.0.1`):增加一句话描述和分割线
+- 20251230(`v1.0.0`):模板创建
+
+注释:**1-3 句话的核心逻辑 + 代码片段**
+
+---
+
+## 一句话描述
+
+[__Python 核心排序方法(sorted () 与 list.sort ())的特性对比、基础用法、自定义排序规则及性能优化技巧______]
+
+## 核心定义
+
+围绕核心排序方法 `sorted()` 和 `list.sort()` 的实现,二者核心特性对比如下:
+
+|特性|sorted(iterable)|list.sort()|
+|---|---|---|
+|返回值|返回**新的排序后列表**,原数据保持不变|无返回值(None),**原地修改**原列表|
+|适用对象|所有可迭代对象(列表、元组、字典等)|仅列表(list)类型|
+|内存占用|占用额外内存(生成新列表)|无额外内存消耗(原地修改)|
+|常用场景|需保留原数据、非列表对象的排序需求|无需保留原数据、仅针对列表的排序场景|
+
+## 基础排序用法
+
+```python
+# sorted():生成新列表
+nums = [3, 1, 2]
+new_nums = sorted(nums) # new_nums=[1,2,3], nums仍为[3,1,2]
+
+# list.sort():原地修改
+nums.sort() # nums变为[1,2,3],返回None
+```
+
+
+## 自定义排序规则
+
+### 1. key 参数(lambda / 自定义函数)
+
+- 单维度排序:`key=lambda 元素: 元素.属性`
+- 多维度排序:`key=lambda 元素: (属性1, 属性2)`(优先按属性 1,相等则按属性 2)
+
+```python
+# 优先x升序 → 其次y升序(你的核心需求)
+sorted_list = sorted(msg_list, key=lambda m: (m.x, m.y))
+
+# 反向:优先x降序 → 其次y降序
+sorted_list_rev = sorted(msg_list, key=lambda m: (m.x, m.y), reverse=True)
+
+# 更复杂场景:x升序,y降序(混合方向)
+sorted_list_mix = sorted(msg_list, key=lambda m: (m.x, -m.y)) # -y实现y降序
+```
+
+### 重写类的比较方法(**lt**)
+
+如果某个类的排序规则是 “长期固定” 的,可重写类的`__lt__`(小于)方法,Python 排序会自动基于`<`推导其他比较逻辑,无需指定`key`。
+
+```python
+class Msg:
+ # x, y 属性
+
+ # 定义“小于”规则:先比x,再比y
+ def __lt__(self, other):
+ if not isinstance(other, Msg): # 避免类型错误,提升健壮性
+ return NotImplemented
+ if self.x != other.x:
+ return self.x < other.x
+ return self.y < other.y
+
+# 直接排序,无需key
+sorted_list = sorted(msg_list)
+```
+
+## 性能优化技巧
+
+### 提前排序键
+
+对于大规模数据(万级以上),提前提取排序键(避免重复计算)
+
+```python
+# 先生成(键, 对象)元组列表,排序后提取对象(减少属性访问次数)
+key_obj = [( (m.x, m.y), m ) for m in msg_list]
+key_obj.sort()
+sorted_list = [obj for (key, obj) in key_obj]
+```
+
+避免在`key`中使用复杂计算(如函数调用),优先预计算。
+
+### operator 替代 lambda
+
+内置的 `operator.attrgetter` 更简洁、大规模数据下性能更好(底层是 C 实现)
+
+```python
+# 等价于 lambda m: (m.x, m.y),但更快、更简洁
+sorted_list = sorted(msg_list, key=attrgetter("x", "y"))
+print(sorted_list) # [Msg(i=2, x=1, y=3), Msg(i=3, x=2, y=1), Msg(i=1, x=3, y=2)]
+
+# 反向排序(x降→y升)
+sorted_rev = sorted(msg_list, key=attrgetter("x", "y"), reverse=True)
+```
+
+### 注意事项
+
+- 避免在 `key` 中使用复杂函数调用,优先通过预计算简化排序键
+- 大规模数据排序时,优先选择 `list.sort()`(原地修改)减少内存占用
\ No newline at end of file
diff --git a/05-原子化笔记本/工具技巧-edge兼容性.md b/05-原子化笔记本/工具技巧-edge兼容性.md
new file mode 100644
index 0000000..3d61c89
--- /dev/null
+++ b/05-原子化笔记本/工具技巧-edge兼容性.md
@@ -0,0 +1,10 @@
+#领域/工具技巧
+## 一句话描述
+
+为了能够使用IE兼容模式打开网页,添加网址到 Internet Explorer 模式页面
+
+## 核心定义
+
+1. 进入 edge 设置
+2. 进入”默认浏览器“-”Internet Explorer 兼容性"
+3. 添加页面链接到"Internet Explorer 模式页面"
diff --git a/templates/模板-信息记录.md b/templates/模板-信息记录.md
deleted file mode 100644
index 93558c6..0000000
--- a/templates/模板-信息记录.md
+++ /dev/null
@@ -1,2 +0,0 @@
-## 最近变更
-- 20251230:模板创建
diff --git a/templates/模板-学习笔记.md b/templates/模板-学习笔记.md
deleted file mode 100644
index 93558c6..0000000
--- a/templates/模板-学习笔记.md
+++ /dev/null
@@ -1,2 +0,0 @@
-## 最近变更
-- 20251230:模板创建
diff --git a/templates/模板-开发任务.md b/templates/模板-开发任务.md
deleted file mode 100644
index b2bbd7f..0000000
--- a/templates/模板-开发任务.md
+++ /dev/null
@@ -1,2 +0,0 @@
-## 最近变更
-- 20251230:模板创建
\ No newline at end of file
diff --git a/templates/模板-需求.md b/templates/模板-需求.md
deleted file mode 100644
index 6f5f779..0000000
--- a/templates/模板-需求.md
+++ /dev/null
@@ -1,28 +0,0 @@
-#临时/备忘
-
-## 模板变更
-关联模板:[[模板-需求]]
-- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
-- 20251231(`v1.0.3`):增加关联模板
-- 20251230(`v1.0.2`):增加基础信息
-- 20251230(`v1.0.1`):增加版本、修订版本字段
-- 20251230(`v1.0.0`):模板创建
-
-
-## 基本信息
-
-### 环境依赖
-
-分界版本:`config-debug-v1.0.4`
-
-### 需求描述
-
-增加**上一个**和**返回**按钮
-
-### 初步评估
-
-在菜单配置项中添加两个固定按钮,并关联点击事件,预估开发 1 工时
-
-### 关联资源
-
-- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]