色彩空间

色彩空间

常见的色彩空间

RGB色彩空间、HSV色彩空间、LAB色彩空间


RGB色彩空间

1.RGB是红色(Red)、绿色(Green)、和蓝色(Blue)三种颜色,人类肉眼对着三种颜色光较为敏感。
2.蓝色波长范围450-495nm;绿色波长范围为495-570nm;红色波长范围为620-750nm。

如何使用OpenCV读取图片中RGB彩色图片

    img1 = cv.imread('lena.png')
    # 将BGR格式转换为RGB格式
    img1_rgb = cv.cvtColor(img1, cv.COLOR_BGR2RGB)

    red_channel = img1_rgb[:, :, 0]  # 红色通道
    green_channel = img1_rgb[:, :, 1]  # 绿色通道
    blue_channel = img1_rgb[:, :, 2]  # 蓝色通道

    red_img = np.zeros_like(img1_rgb)
    red_img[:, :, 0] = red_channel

    green_img = np.zeros_like(img1_rgb)
    green_img[:, :, 1] = green_channel

    blue_img = np.zeros_like(img1_rgb)
    blue_img[:, :, 2] = blue_channel

    cv.imshow("Original Image ", img1)
    cv.imshow("Original Image", img1_rgb)
    cv.imshow("Red Channel", red_img)
    cv.imshow("Green Channel", green_img)
    cv.imshow("Blue Channel", blue_img)

    if cv.waitKey(0) & 0xFF == ord('q'):
        cv.destroyAllWindows()
原始图像结果 R通道结果 G通道结果 B通道结果 RGB结果显示
image image image image image

RGB色彩空间的缺陷

缺陷:它最大的缺点就是无法直观地区分图像的颜色、亮度和饱和度等值。

HSV色彩空间

H(Hue):表示颜色通道,不同的值表示不同的颜射范围。
S:表示表示饱和度通道,及色泽。
V:表示亮度通道,代表了图像亮度高低级别。

HSV色彩空间取值

|HSV|

色彩空间的转换与应用

    img1 = cv.imread('lena.png')
    # 将BGR格式转换为RGB格式
    img1_rgb = cv.cvtColor(img1, cv.COLOR_BGR2RGB)
    
    # 将RGB转换为HSV格式
    img1_hsv = cv.cvtColor(img1_rgb, cv.COLOR_RGB2HSV)
    
    # 分别提取HSV三个通道
    h_channel = img1_hsv[:, :, 0]  # 色调通道
    s_channel = img1_hsv[:, :, 1]  # 饱和度通道
    v_channel = img1_hsv[:, :, 2]  # 明度通道
    
    # 创建单通道图像用于显示
    h_img = np.zeros_like(img1_rgb)
    h_img[:, :, 0] = h_channel
    
    s_img = np.zeros_like(img1_rgb)
    s_img[:, :, 1] = s_channel
    
    v_img = np.zeros_like(img1_rgb)
    v_img[:, :, 2] = v_channel
    
    # 分别提取RGB三个颜色通道
    red_channel = img1_rgb[:, :, 0]   # 红色通道
    green_channel = img1_rgb[:, :, 1] # 绿色通道
    blue_channel = img1_rgb[:, :, 2]  # 蓝色通道
    
    # 创建单通道图像用于显示
    red_img = np.zeros_like(img1_rgb)
    red_img[:, :, 0] = red_channel
    
    green_img = np.zeros_like(img1_rgb)
    green_img[:, :, 1] = green_channel
    
    blue_img = np.zeros_like(img1_rgb)
    blue_img[:, :, 2] = blue_channel

    # 显示原图和各通道图像
    cv.imshow("Original RGB", img1_rgb)
    cv.imshow("HSV Image", img1_hsv)
    cv.imshow("H Channel", h_img)
    cv.imshow("S Channel", s_img)
    cv.imshow("V Channel", v_img)
    cv.imshow("Red Channel", red_img)
    cv.imshow("Green Channel", green_img)
    cv.imshow("Blue Channel", blue_img)
    
    # 显示灰度图形式的单通道
    cv.imshow("H Channel Gray", h_channel)
    cv.imshow("S Channel Gray", s_channel)
    cv.imshow("V Channel Gray", v_channel)

    key = cv.waitKey(0)
    if key == ord('q'):
        cv.destroyAllWindows()

色彩空间结果

原始图片 H单通道 S单通道 V通道 HSV结果 灰度图像
image image image image image image

LAB色彩空

L 表示亮度信息。
A 表示色度信息中的红色/绿色值
B 表示色度信息中蓝色/黄色值。

posted @ 2025-09-18 20:32  heyuikn  阅读(56)  评论(0)    收藏  举报