HSV颜色模型和OpenCV中的颜色分量范围介绍【建议收藏】

在图像处理和计算机视觉领域,颜色模型是理解和分析图像色彩的基础。OpenCV作为一个广泛使用的计算机视觉库,支持多种颜色空间,其中HSV(Hue, Saturation, Value)颜色模型因其直观性和易用性,在图像处理和颜色分析中被广泛应用。

文章目录

  • 一、HSV颜色模型概述
    • 1.1 色调(Hue)
    • 1.2 饱和度(Saturation)
    • 1.3 明度(Value)
  • 二、OpenCV中的HSV颜色分量范围
    • 2.1 分量范围
    • 2.2 基本色分量范围表
  • 三、HSV颜色模型的应用
    • 3.1 示例代码
  • 四、结论
  • 书籍推荐

一、HSV颜色模型概述

HSV颜色模型是一种基于人眼感知颜色的方式而设计的颜色空间,由A. R. Smith在1978年提出。它通过将颜色分解为色调(Hue)、饱和度(Saturation)和明度(Value)三个分量,以直观的方式表示颜色。HSV颜色模型可以用一个圆锥体或圆柱体来描述,其中色调H用极坐标的极角表示,饱和度S用极坐标的极轴长度表示,明度V用圆柱体的高度表示。
HSV颜色模型和OpenCV中的颜色分量范围介绍【建议收藏】_第1张图片

1.1 色调(Hue)

色调H表示颜色的类别,用角度度量,取值范围为0°~360°。在HSV模型中,色调从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。

1.2 饱和度(Saturation)

饱和度S表示颜色接近光谱色的程度,取值范围为0%~100%。饱和度越高,颜色越深且越鲜艳;饱和度越低,颜色越浅且越接近白色。在HSV模型中,饱和度为0%表示纯白色,此时颜色不包含任何光谱色成分。

1.3 明度(Value)

明度V表示颜色的明亮程度,取值范围也是0%~100%。明度越高,颜色越明亮;明度越低,颜色越暗。当明度为0%时,颜色最暗,表现为黑色。在HSV模型中,明度V与颜色的亮度直接相关,但与颜色的种类和饱和度无关。

二、OpenCV中的HSV颜色分量范围

2.1 分量范围

在OpenCV中,HSV颜色模型的具体分量范围如下:

  • 色调H:0~180(注意,这与标准HSV模型中的0~360°不同,OpenCV将色调的取值范围进行了归一化处理,以便在内部处理时更加高效)
  • 饱和度S:0~255(与标准HSV模型中的0%~100%不同,OpenCV使用0~255来表示)
  • 明度V:0~255(同样,与标准HSV模型中的0%~100%不同,OpenCV使用0~255来表示)

这种表示方式使得在OpenCV中处理HSV颜色时更加直观和方便,因为所有的颜色分量都可以使用相同的整数范围来表示。

2.2 基本色分量范围表

基本色分量范围表如下(注意:下表来自网络实验,可能会有少许误差):
HSV颜色模型和OpenCV中的颜色分量范围介绍【建议收藏】_第2张图片

三、HSV颜色模型的应用

HSV颜色模型在OpenCV中常用于图像的颜色分割、颜色过滤和颜色识别等任务。例如,在提取图像中特定颜色的物体时,可以首先将图像从BGR颜色空间转换到HSV颜色空间,然后根据目标颜色的色调、饱和度和明度范围创建一个掩码(mask),最后通过掩码来提取目标物体。

3.1 示例代码

以下是一个使用OpenCV将BGR图像转换为HSV图像,并提取特定颜色(如绿色)的示例代码:

import cv2
import numpy as np

# 读取图像
img = cv2.imread('image.jpg')

# 将BGR图像转换为HSV图像
hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# 定义绿色的色调、饱和度和明度范围
lower_green = np.array([35, 43, 46])
upper_green = np.array([77, 255, 255])

# 根据颜色范围创建掩码
mask = cv2.inRange(hsv_img, lower_green, upper_green)

# 使用掩码提取绿色部分
result = cv2.bitwise_and(img, img, mask=mask)

# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Mask', mask)
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上述代码中,我们首先读取一张图像,并将其从BGR颜色空间转换为HSV颜色空间。然后,我们定义了绿色的色调、饱和度和明度范围,并据此创建了一个掩码。最后,我们使用掩码从原图中提取出绿色的部分,并显示结果。

四、结论

HSV颜色模型以其直观性和易用性,在OpenCV的图像处理和颜色分析中发挥着重要作用。通过了解HSV颜色模型及其颜色分量范围,我们可以更加灵活和高效地处理图像中的颜色信息。

书籍推荐

Python和PySpark数据分析(数据科学与大数据技术)

HSV颜色模型和OpenCV中的颜色分量范围介绍【建议收藏】_第3张图片
Spark数据处理引擎是一个惊人的分析工厂:输入原始数据,输出洞察。PySpark用基于Python的API封装了Spark的核心引擎。它有助于简化Spark陡峭的学习曲线,并使这个强大的工具可供任何在Python数据生态系统中工作的人使用。

《Python和PySpark数据分析》帮助你使用PySpark解决数据科学的日常挑战。你将学习如何跨多台机器扩展处理能力,同时从任何来源(无论是Hadoop集群、云数据存储还是本地数据文件)获取数据。一旦掌握了基础知识,就可以通过构建机器学习管道,并配合Python、pandas和PySpark代码,探索PySpark的全面多功能特性。

主要内容:

● 组织PySpark代码

● 管理任何规模的数据

● 充满信心地扩展你的数据项目

● 解决常见的数据管道问题

● 创建可靠的长时间运行的任务

京东:https://item.jd.com/14238656.html

当当:https://product.dangdang.com/29643891.html

你可能感兴趣的:(Python实用技巧大全,opencv,人工智能,计算机视觉,HSV颜色模型,图像识别,图像处理,python)