这是一个基于 PyQt5 的交互式颜色分析工具。 支持从图片中取样颜色,区分基础色与目标色,并使用 非负最小二乘法(NNLS) 分析目标色是否可以由基础色混合得到。 结果会以表格形式展示,并可导出到 Excel 文件(带背景色标记)。
- 从图片中取样颜色,自动记录 RGB 与 HEX。
- 颜色类型分为:
- 基础色:可用于混合。
- 目标色:需要分析是否可由基础色混合得到。
- 支持为颜色添加/修改自定义标签。
- 支持 批量导入标签(逗号分隔)。
- 提供 右键菜单(删除颜色 / 修改标签)。
- 使用 非负最小二乘法(
scipy.optimize.nnls)计算混合比例。 - 分析结果以表格形式展示,并支持 导出 Excel 文件,带颜色背景。
请先安装 Python 3.8+,然后安装所需依赖:
pip install pyqt5 opencv-python numpy pandas scipy openpyxl直接运行主文件或者打开exe文件进行使用
python color_picker.py- 加载图片:点击“加载图片”,选择一张
.png/.jpg图片。 - 选择颜色类型:在下拉框中选择“基础色”或“目标色”。
- 取样颜色:在图片上点击像素即可将该颜色加入对应列表。
- 管理颜色:
- 双击颜色条目可修改标签。
- 右键菜单支持删除或修改标签。
- “导入标签”可批量导入(如
A,B,C,D)。
- 运行分析:点击“运行颜色分析”,工具将计算目标色是否可由基础色混合得到,并展示占比结果。
- 导出 Excel:结果会自动导出到
color_analysis_results.xlsx,表头和目标色单元格带背景色。
Excel 文件 color_analysis_results.xlsx 内容示例:
| 目标色 | 红色(#FF0000) | 蓝色(#0000FF) | 黄色(#FFFF00) |
|---|---|---|---|
| #FF8000 | 0.500 | 0.500 | |
| #8000FF | 0.500 | 0.500 |
其中:
- 第一列为目标色,带背景色。
- 后续列为基础色的混合比例(为空表示未参与)。
- 界面框架:PyQt5
- 图像处理:OpenCV
- 混合计算:非负最小二乘法 (
scipy.optimize.nnls) - 结果导出:openpyxl(Excel 背景色填充)
- 颜料、染料或涂料颜色调配研究
- 图像与设计中颜色还原与分析
- 教学演示颜色混合原理