# PyLine **Repository Path**: yang19991111/PyLine ## Basic Information - **Project Name**: PyLine - **Description**: A tool used for picking points/lines datas from images. - **Primary Language**: Python - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-01 - **Last Updated**: 2026-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PyLine 从图片中提取曲线数据的桌面工具。将科学论文、报告中的图表截图还原成可分析的 XY 数值数据集。 --- ## 项目管理 通过左侧项目树管理所有数据,层级结构为 **项目 → 图片 → 曲线**。可同时打开多个项目,切换项目时工作区自动更新。右键点击树节点可重命名或删除对应项目、图片或曲线。首页会记录最近打开的项目列表,方便快速重新加载。 ### 项目结构 创建新项目时,PyLine 会在指定目录下生成一个自包含的文件夹: ``` 项目名称/ ├── 项目名称.pyline # 项目元数据(JSON 格式) └── files/ └── images/ # 图片副本备份 ``` `.pyline` 文件记录了项目的全部信息:图片列表、曲线数据、校准参数等。所有引用的图片均以**相对路径**保存,因此项目文件夹可整体移动或分享而不会丢失数据。 ### 图片管理 添加图片时(通过文件对话框或直接拖放到工作区),PyLine 会自动将原图复制一份到 `files/images/` 目录中作为备份。重命名图片时,备份文件名同步更新;删除图片时,对应的备份也一并清除。还可以在项目树中将图片拖放到另一个项目,实现跨项目转移。 ## 坐标校准 在图片上提取数据前,需先完成坐标校准以建立像素坐标与实际坐标的映射关系。支持三种坐标系: - **线性坐标** — 分别在 X 轴和 Y 轴上各点击两个已知数值的位置,共 4 个点 - **对数坐标** — 同上,适用于坐标轴为对数刻度的图表 - **极坐标** — 点击原点和一个参考点,并输入该参考点的实际角度与极径值 校准完成后,所有提取的点坐标会自动换算为实际数值。 ## 曲线提取 提供三种取点方式: - **手动取点** — 在工具栏选择取点模式后,直接在图片上逐点点击,适合曲线形状复杂或噪点多的情况 - **自动颜色检测** — 先通过颜色对话框或直接在图片上点击采样目标曲线的颜色,再调整容差和采样步长,执行后自动沿该颜色路径生成数据点;检测结果以预览形式显示,确认后再应用 - **自动图形检测(测试功能)** - 通过截图选取目标图形,自动检测并提取数据点 ## 蒙版 用于限定自动检测的有效区域,避免图中其他元素的干扰: - **框选蒙版** — 拖动绘制矩形区域 - **画笔蒙版** — 自由涂刷任意形状区域 - 可切换为**屏蔽模式**(蒙版内不检测)或**感兴趣模式**(仅蒙版内检测) ## 数据编辑 提取完成后,右侧表格实时显示当前曲线的所有数据点坐标。可在表格中多选行后右键删除,也可点击表头对数据按 X 或 Y 排序。所有编辑操作均支持撤销和重做。此外还提供曲线平滑功能,可选移动平均或 Savitzky-Golay 两种算法。 ## 数据导出 在工作区右侧的"数据导出"面板中,可将当前曲线或全部曲线导出为以下格式: - **CSV / TXT** — 通用文本格式,逗号或制表符分隔 - **Excel (.xlsx)** — 每条曲线独立一个 Sheet - **JSON** — 包含曲线名称、颜色、坐标类型等元数据 - **复制到剪贴板** — 直接粘贴到 Excel 或其他表格软件 ## 图表可视化 图表页面将项目中的曲线绘制为折线图,支持多条曲线同时显示。可为每条曲线单独设置颜色和线型,也可调整坐标轴范围和标签。支持从外部文件(CSV、TXT、JSON 等)导入数据叠加对比,最终图表可导出为 PNG、SVG 或 PDF 文件。 ## 设置 在设置页面可切换界面主题(浅色 / 深色 / 跟随系统),并对所有操作的键盘快捷键进行自定义,修改后即时生效。 ## 感谢 感谢开源项目 [PyQt-Fluent-Widgets](https://github.com/zhiyiYo/PyQt-Fluent-Widgets),为界面提供了美观的 Fluent 设计风格。