From be2260c0d6e69bed4abd7a265ccd470e5dcf3902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BF=83=E5=B9=B3=E6=B0=94=E5=92=8C?= <2394609457@qq.com> Date: Thu, 8 Jan 2026 13:23:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=9C=80=E6=B1=82=E3=80=81?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E3=80=81=E5=8E=9F=E5=AD=90=E5=8C=96=E7=AC=94?= =?UTF-8?q?=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .obsidian/hotkeys.json | 1 + .obsidian/templates.json | 3 +- .obsidian/workspace.json | 94 +++--- .obsidian/workspaces.json | 287 +++++++++++++++++- 01-项目/2025-MaixCam竞赛版/需求-OCR补丁.md | 59 ++++ .../2025-MaixCam竞赛版/需求-优化启动速度.md | 33 ++ .../需求-忽略指定大小的色块.md | 60 ++++ .../2025-MaixCam竞赛版/需求-控制SK9822灯带.md | 63 ++++ .../2025-MaixCam竞赛版/需求-程序更新渠道.md | 58 ++++ 01-项目/2025-MaixCam竞赛版/需求-色块合并.md | 58 ++++ 01-项目/2025-MaixCam竞赛版/项目需求.md | 24 +- 01-项目/2026-新知识融合/模块-多媒体-清单.md | 1 + 02-领域/DataView/领域知识地图.md | 2 +- .../MaixCam/MaixCam核心标准.md | 0 02-领域/Python/领域知识地图.md | 2 + 02-领域/工具技巧/领域知识地图.md | 2 + .../项目总结.md => 03-资源/工具清单.md | 0 .../项目配置.md => 03-资源/教程-文档链接汇总.md | 0 .../模板文件/2025-项目模板/项目Bug清单.md | 0 03-资源/模板文件/2025-项目模板/项目总结.md | 0 03-资源/模板文件/2025-项目模板/项目配置.md | 0 03-资源/模板文件/2025-项目模板/项目需求.md | 0 .../模板文件}/模板-Bug修复.md | 21 +- .../模板文件/模板-原子化笔记-代码.md | 10 + 03-资源/模板文件/模板-备忘.md | 13 + 03-资源/模板文件/模板-豆包-DataView归档.md | 75 +++++ 03-资源/模板文件/模板-豆包-DataView语法.md | 45 +++ 03-资源/模板文件/模板-豆包-文档整理.md | 52 ++++ 03-资源/模板文件/模板-豆包-翻译内容.md | 49 +++ 03-资源/模板文件/模板-需求.md | 60 ++++ .../DataView-文件夹下”需求“开头的文件.md | 18 -- 05-原子化笔记本/DataView-语法知识点.md | 19 ++ 05-原子化笔记本/MaixCam-find_blobs说明.md | 68 +++++ 05-原子化笔记本/Python-排序.md | 108 +++++++ 05-原子化笔记本/工具技巧-edge兼容性.md | 10 + templates/模板-信息记录.md | 2 - templates/模板-学习笔记.md | 2 - templates/模板-开发任务.md | 2 - templates/模板-需求.md | 28 -- 39 files changed, 1216 insertions(+), 113 deletions(-) create mode 100644 .obsidian/hotkeys.json create mode 100644 01-项目/2025-MaixCam竞赛版/需求-OCR补丁.md create mode 100644 01-项目/2025-MaixCam竞赛版/需求-优化启动速度.md create mode 100644 01-项目/2025-MaixCam竞赛版/需求-忽略指定大小的色块.md create mode 100644 01-项目/2025-MaixCam竞赛版/需求-控制SK9822灯带.md create mode 100644 01-项目/2025-MaixCam竞赛版/需求-程序更新渠道.md create mode 100644 01-项目/2025-MaixCam竞赛版/需求-色块合并.md rename templates/2025-项目模板/项目Bug清单.md => 02-领域/MaixCam/MaixCam核心标准.md (100%) create mode 100644 02-领域/Python/领域知识地图.md create mode 100644 02-领域/工具技巧/领域知识地图.md rename templates/2025-项目模板/项目总结.md => 03-资源/工具清单.md (100%) rename templates/2025-项目模板/项目配置.md => 03-资源/教程-文档链接汇总.md (100%) rename templates/2025-项目模板/项目需求.md => 03-资源/模板文件/2025-项目模板/项目Bug清单.md (100%) create mode 100644 03-资源/模板文件/2025-项目模板/项目总结.md create mode 100644 03-资源/模板文件/2025-项目模板/项目配置.md create mode 100644 03-资源/模板文件/2025-项目模板/项目需求.md rename {templates => 03-资源/模板文件}/模板-Bug修复.md (53%) rename templates/模板-原子化笔记.md => 03-资源/模板文件/模板-原子化笔记-代码.md (79%) create mode 100644 03-资源/模板文件/模板-备忘.md create mode 100644 03-资源/模板文件/模板-豆包-DataView归档.md create mode 100644 03-资源/模板文件/模板-豆包-DataView语法.md create mode 100644 03-资源/模板文件/模板-豆包-文档整理.md create mode 100644 03-资源/模板文件/模板-豆包-翻译内容.md create mode 100644 03-资源/模板文件/模板-需求.md delete mode 100644 05-原子化笔记本/DataView-文件夹下”需求“开头的文件.md create mode 100644 05-原子化笔记本/DataView-语法知识点.md create mode 100644 05-原子化笔记本/MaixCam-find_blobs说明.md create mode 100644 05-原子化笔记本/Python-排序.md create mode 100644 05-原子化笔记本/工具技巧-edge兼容性.md delete mode 100644 templates/模板-信息记录.md delete mode 100644 templates/模板-学习笔记.md delete mode 100644 templates/模板-开发任务.md delete mode 100644 templates/模板-需求.md 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竞赛版/项目需求|项目需求]]