新增需求、模板、原子化笔记

This commit is contained in:
心平气和 2026-01-08 13:23:55 +08:00
parent ac220aea6d
commit be2260c0d6
39 changed files with 1216 additions and 113 deletions

1
.obsidian/hotkeys.json vendored Normal file
View File

@ -0,0 +1 @@
{}

View File

@ -1,3 +1,4 @@
{
"folder": "templates"
"folder": "03-资源/模板文件",
"dateFormat": "YYYYMMDD"
}

View File

@ -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"
]
}

View File

@ -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": "\"碎片<->模板\"反馈流"
}

View File

@ -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竞赛版/项目需求|项目需求]]

View File

@ -0,0 +1,33 @@
#需求/禅道
20260105-需求-主题名-文件内容
## 模板变更
- 20260105(`v1.0.5`):增加一句话描述
- 20251231(`v1.0.4`):增加核心信息(需求描述、初步评估、关联资源)
- 20251231(`v1.0.3`):增加关联模板
---
## 一句话描述
摄像头启动和程序启动速度慢
## 基本信息
### 需求描述
优化启动画面
1. 查询资料编译自定义系统
2. 询问官方途径
程序启动速度
1. 评估启动速度
2. 尝试开机优先启动画面来提升用户感受
### 初步评估
需要排查评估,预估开发时间未知
### 关联资源
- [[01-项目/2025-MaixCam竞赛版/项目需求|项目需求]]

View File

@ -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竞赛版/项目需求|项目需求]]

View File

@ -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竞赛版/项目需求|项目需求]]

View File

@ -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竞赛版/项目需求|项目需求]]

View File

@ -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说明]]

View File

@ -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
```

View File

@ -10,3 +10,4 @@
- 灵魂摆渡
- 唐朝诡事录
- 潜伏
- 晚酌的流派

View File

@ -1,2 +1,2 @@
- [[DataView-文件夹下”需求“开头的文件]]
- [[DataView-语法知识点]]

View File

@ -0,0 +1,2 @@
- [[Python-排序]]]

View File

@ -0,0 +1,2 @@
- [[工具技巧-edge兼容性]]

View File

@ -1,18 +1,33 @@
#临时/Bug
{{date}}-Bug-主题名-文件内容
## 模板变更
- 20260105(`1.0.1`):增加分割线和一句话描述
- 20251230新增待修订版本
- 20251230模板创建
待修订版本:`xxx-v`
---
## 一句话描述
这是一个Bug修复的模板
## 一、原始Bug记录
...(原有内容)
[步骤]
[结果]
[期望]
## 二、信息检索操作
...(原有内容)
## 三、提问优化内容
...(原有内容)
## 四、AI解答核心内容新增区块极简记录
## 四、AI解答核心内容
...(原有内容)

View File

@ -1,8 +1,18 @@
#领域/MaixCam
{{date}}-原子化笔记-主题名-文件内容
## 模板变更
- 20260105(`v1.0.1`):增加一句话描述和分割线
- 20251230(`v1.0.0`):模板创建
注释:**1-3 句话的核心逻辑 + 代码片段**
---
## 一句话描述
[__这是一个原子化笔记文件的模板______]
## 核心定义
触摸屏支持分辨率为 552 x 368 分辨率,菜单控件的更新操作和屏幕显示之间不建议插入其他代码,以免菜单显示错位

View File

@ -0,0 +1,13 @@
#临时/备忘
{{date}}-备忘-主题名-文件内容
## 模板变更
- 20260105(`v1.0.1`):增加分割线区分提示内容和实际内容
- 20260105(`v1.0.0`):模板创建
---
## 一句话描述
[________]

View File

@ -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-语法知识点]]

View File

@ -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
```

View File

@ -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. 在不偏离本意的前提下,你可以适当润色内容和格式
---
## 输入内容
[________]
## 已归档内容

View File

@ -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所以你要注意格式排版
---
注意:请忽略以下内容
## 输出结果

View File

@ -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竞赛版/项目需求|项目需求]]

View File

@ -1,18 +0,0 @@
#领域/DataView
## 模板变更
- 20251230(`v1.0.0`):模板创建
# 核心定义
```plain
编写一个 dataviewObsidian插件 查询的示例,查询出指定文件夹下所有“需求”开头的文件
```
```dataview
table
from "00-临时碎片文件夹"
where startswith(file.name, "需求")
```

View File

@ -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, "#需求/"))` | 判断文件是否存在以 `#需求/` 为前缀的标签,返回布尔值(用于筛选文件) | 存在符合标签则保留文件,无则排除 |
## 知识点结束

View File

@ -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 | 可定义多个阈值:<br><br>- 灰度GRAYSCALE格式使用 `{{Lmin, Lmax}, ...}` 定义一个或多个阈值;<br><br>- RGB888 格式:使用 `{{Lmin, Lmax, Amin, Amax, Bmin, Bmax}, ...}` 定义一个或多个阈值;<br><br>其中大写 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<br><br>当 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)

View File

@ -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()`(原地修改)减少内存占用

View File

@ -0,0 +1,10 @@
#领域/工具技巧
## 一句话描述
为了能够使用IE兼容模式打开网页添加网址到 Internet Explorer 模式页面
## 核心定义
1. 进入 edge 设置
2. 进入”默认浏览器“-”Internet Explorer 兼容性"
3. 添加页面链接到"Internet Explorer 模式页面"

View File

@ -1,2 +0,0 @@
## 最近变更
- 20251230模板创建

View File

@ -1,2 +0,0 @@
## 最近变更
- 20251230模板创建

View File

@ -1,2 +0,0 @@
## 最近变更
- 20251230模板创建

View File

@ -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竞赛版/项目需求|项目需求]]