当前位置: 首页 > news >正文

OpenCV(十一):色彩空间转换

核心函数

dst = cv2.cvtColor(src, code)

参数解释:

  1. src: 待转换的源图像(通常是一个 NumPy 数组)。
  2. code: 转换代码,指定了源色彩空间到目标色彩空间的转换类型。

常见的色彩空间转换代码(code):

转换代码描述
cv2.COLOR_BGR2GRAYBGR 格式(OpenCV默认)转为灰度图
cv2.COLOR_BGR2RGBBGR 转为 RGB (常用于Matplotlib显示)
cv2.COLOR_RGB2BGRRGB 转为 BGR
cv2.COLOR_BGR2HSVBGR 转为 HSV (色相、饱和度、亮度)
cv2.COLOR_HSV2BGRHSV 转为 BGR
cv2.COLOR_BGR2HLSBGR 转为 HLS (色相、亮度、饱和度)

为什么常用 HSV/HLS?

HSV(Hue, Saturation, Value)和 HLS(Hue, Lightness, Saturation)色彩空间在基于颜色的目标检测或分割中非常有用,因为它们将颜色信息(色相 H)与亮度信息(V/L)分离。这意味着可以在不同光照条件下更容易地提取特定颜色。

示例

import cv2
import numpy as np# 窗口名称
WINDOW_NAME = 'HSV Color Palette'# 这是一个空函数,作为 cv2.createTrackbar 的回调函数。
# trackbar 变化时,如果不需要立即执行操作,可以使用它。
def nothing(x):pass# 1. 创建窗口
cv2.namedWindow(WINDOW_NAME)# 2. 创建滑块 (Trackbars)# HSV 在 OpenCV 中,默认的 8 位图像范围如下:
# H (Hue, 色相): 0 - 179 (范围是 0-360 的一半)
# S (Saturation, 饱和度): 0 - 255
# V (Value/Brightness, 明度/亮度): 0 - 255cv2.createTrackbar('H', WINDOW_NAME, 0, 179, nothing)
cv2.createTrackbar('S', WINDOW_NAME, 0, 255, nothing)
cv2.createTrackbar('V', WINDOW_NAME, 0, 255, nothing)# 3. 主循环:实时获取滑块位置并更新颜色显示
while(True):# 退出机制:按下 'q' 键退出k = cv2.waitKey(1) & 0xFFif k == ord('q'):break# 4. 获取当前滑块位置h = cv2.getTrackbarPos('H', WINDOW_NAME)s = cv2.getTrackbarPos('S', WINDOW_NAME)v = cv2.getTrackbarPos('V', WINDOW_NAME)# 5. 创建一个 HSV 颜色块# 注意:为了让 OpenCV 识别为颜色,必须使用三维数组结构:# [[[H, S, V]]] - (1, 1, 3) 的 NumPy 数组hsv_color = np.uint8([[[h, s, v]]])# 6. 将 HSV 颜色转换为 BGR 颜色# cv2.imshow 只能显示 BGR/GRAY 图像,所以需要转换回来bgr_color = cv2.cvtColor(hsv_color, cv2.COLOR_HSV2BGR)# 7. 创建一个大图像来显示这个颜色 (例如 300x512)# img[:] = bgr_color[0][0] 将图像的所有像素设置为转换后的 BGR 颜色img = np.zeros((300, 512, 3), dtype=np.uint8)img[:] = bgr_color[0][0]# 8. 显示图像cv2.imshow(WINDOW_NAME, img)# 9. 销毁所有窗口
cv2.destroyAllWindows()
http://www.dtcms.com/a/482927.html

相关文章:

  • 广州安全教育平台网宁波网站seo哪家好
  • 家装网站自己做的平面设计常用网站
  • Three.js轨道控制器完全指南(OrbitControls与TrackballControls)
  • 服务器数据恢复—硬盘黄灯预警,RAID5阵列数据如何恢复?
  • CATIA 转换为 3DXML 全流程:迪威模型网在线转换和本地方转换方法指南
  • 学校门户网站建设的意义做任务分享赚钱的网站
  • 网站个人中心wordpress怎么做手机网站
  • 杂记 15
  • Video Understanding Baseline via papers
  • MySQL架构和存储引擎
  • Zabbix模板,自定义键值监控项,图形
  • 前端js 常见算法面试题目详解
  • 盾思途旅游网站建设免费seo工具
  • 吴江区经济开发区建设工程网站网站对于企业的好处
  • 新的pvc是否可以指定pv, 而这个pv已经被另一个pvc绑定,状态为bound
  • 网站域名在哪里买巩义网站建设案例
  • 微软宣布删除“另存为”选项,今后文件将默认保存到云盘
  • 单北斗GNSS形变监测系统在桥梁安全中的应用与技术解析
  • 大兴网站建设公司网站架构设计师工资水平
  • 无人机远程无线图传技术详解,无人机图像传输技术解析,无人机wifi图传距离多远
  • 《3D山地场景渲染进阶:GPU驱动架构下细节与性能平衡的6大技术实践》
  • 热门搜索怎么做企业网站优化需要多少钱
  • JVM初识
  • 最小二乘问题详解4:非线性最小二乘
  • pcba方案开发|车载智能充气泵
  • c++项目篇:高并发内存池项目开发记录01
  • wordpress wp_term_taxonomy优化网站哪家好
  • 怎么选择宜昌网站建设沈阳网站建设与开发
  • SQL提数与数据分析指南
  • 新手用Godot打造2D像素风游戏