HSV for cv2
在 Python OpenCV 代码中,为 np.array([H, S, V]) 提供 HSV 颜色预览和编辑。
写 cv2.inRange 的 HSV 阈值时,再也不用靠猜——代码里直接看到每个数组对应的颜色,并以可视化的方式调整。
lower = np.array([90, 100, 100]) # ← 前面会出现对应颜色的色块
upper = np.array([124, 255, 255])
mask = cv2.inRange(hsv, lower, upper)
功能
1. 原生颜色块 + 原生取色器
识别到 np.array([H, S, V])(或 numpy.array,支持换行/任意空白)后,在 [ 前渲染 VS Code 原生可点击颜色块。点击弹出原生取色面板(饱和度/明度方块 + 色相条),拖动即实时写回代码。
2. 悬停预览
鼠标悬停在数组上,显示:
- OpenCV HSV 数值
- RGB / HEX 换算结果
- 「打开 H/S/V 滑条面板」悬浮链接(点击精确打开该数组的调整面板)
3. H/S/V 三滑条面板
在数组上右键 →「用滑条调整 HSV 颜色」,或通过命令面板 HSV: 用滑条调整 HSV 颜色、悬浮链接打开:
- 三个滑条:H (0–179)、S (0–255)、V (0–255),按 OpenCV 取值范围
- 滑轨显示对应通道的实时颜色渐变(H 为色相彩虹,S 为灰→饱和,V 为黑→亮),拖动时三条联动
- 顶部大色块预览 + RGB/HEX 信息
- 支持直接输入 HEX(
#RRGGBB / #RGB)或 RGB(61, 100, 100 / rgb(...) / rgba(...)),回车应用
- 拖动即时写回代码,编辑器内颜色块同步更新
OpenCV HSV 约定
OpenCV 的 8 位图像中 HSV 的取值范围与常见取色器不同:
| 通道 |
OpenCV 范围 |
说明 |
| H |
0–179 |
色相 0–360° 除以 2 |
| S |
0–255 |
饱和度 |
| V |
0–255 |
明度 |
本扩展的所有预览和编辑均按此约定换算(原生取色器选中的 RGB 会自动转回该约定的整数)。
使用方式
- 打开任意 Python 文件时自动激活,无需配置
- 入口汇总:
- 点击颜色块 → 原生取色器
- 悬停 → 数值预览 + 滑条面板链接
- 右键菜单 / 命令面板 → 三滑条面板
已知限制
- 颜色在 RGB 与 HSV 整数之间换算,存在 ±1 的量化误差(视觉上无差别)
- 灰色(S=0)不含色相信息,经取色器往返后 H 会归 0(颜色本身一致)
- 仅识别恰好包含 3 个整数的
np.array / numpy.array 调用
开发
npm run watch # 开发模式(esbuild + tsc 监视)
npm run compile # 类型检查 + lint + 构建
npm run package # 生产构建
npm test # 运行测试
按 F5 启动扩展开发宿主,在其中的 Python 文件里即可体验。
Release Notes
0.0.1
首个版本:颜色块预览、原生取色器、悬停预览、H/S/V 三滑条面板(渐变滑轨 + HEX/RGB 输入)。