OpenCV 是一个强大的计算机视觉库,颜色空间转换是其核心功能之一。本文将介绍 OpenCV 中常见的颜色空间转换方法。

常见颜色空间

在 OpenCV 中,常见的颜色空间包括:

  • BGR:蓝绿红,OpenCV 默认的颜色空间
  • RGB:红绿蓝,常见的图像显示颜色空间
  • HSV:色调、饱和度、亮度,常用于图像处理
  • HSL:色调、饱和度、亮度,与 HSV 类似,但色调范围更广
  • YUV:亮度、色度,常用于视频处理

颜色空间转换

在 OpenCV 中,可以使用 cv2.cvtColor() 函数进行颜色空间转换。以下是一些常用的转换方法:

BGR 到 RGB

import cv2

# 读取图片
image = cv2.imread('example.jpg')

# BGR 到 RGB 转换
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# 显示图片
cv2.imshow('RGB Image', rgb_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

BGR 到 HSV

# BGR 到 HSV 转换
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

# 显示图片
cv2.imshow('HSV Image', hsv_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

实战案例

下面是一个使用颜色空间转换进行图像分割的例子:

# 读取图片
image = cv2.imread('example.jpg')

# BGR 到 HSV 转换
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

# 设置阈值
lower_color = np.array([30, 50, 50])
upper_color = np.array([255, 255, 255])

# 根据阈值创建掩码
mask = cv2.inRange(hsv_image, lower_color, upper_color)

# 显示掩码
cv2.imshow('Mask', mask)
cv2.waitKey(0)
cv2.destroyAllWindows()

扩展阅读

更多关于 OpenCV 的颜色空间转换内容,可以参考以下链接:

希望这篇教程能帮助您更好地理解 OpenCV 颜色空间转换。😊