OpenCV HSV颜色识别及HSV基本颜色分量范围

标题:OpenCV HSV颜色识别及HSV基本颜色分量范围

介绍

OpenCV是一个强大的计算机视觉库,可以用于图像处理、模式识别、机器人视觉等领域,其中HSV颜色空间被广泛应用于颜色检测和跟踪。HSV颜色空间由三个分量组成:色调(Hue)、饱和度(Saturation)和亮度(Value),通过调整颜色分量的范围可以实现各种不同的颜色识别。本文将简单介绍OpenCV HSV颜色识别及HSV基本颜色分量范围的方法和实现。

HSV颜色空间

HSV颜色空间是一种基于颜色感知的颜色模型,由色调、饱和度和亮度三个分量组成。HSV颜色空间的优点是更符合人类感知的方式来描述颜色,而不是以一定的RGB值来描述颜色,同时可以非常方便地对颜色进行调整和筛选。

HSV颜色空间中的三个分量的取值范围如下:

  • 色调(Hue):0-179,表示颜色的范围,取值0为红色,取值60为绿色,取值120为蓝色。
  • 饱和度(Saturation):0-255,表示颜色的纯度,取值越大,颜色越纯,取值越小,颜色越淡。
  • 亮度(Value):0-255,表示颜色的亮度,取值越大,颜色越亮,取值越小,颜色越暗。

HSV颜色识别方法

OpenCV提供了基于HSV颜色空间的颜色识别方法,可以通过设置HSV分量的取值范围实现相应颜色的筛选。具体实现方法如下:

  1. 将彩色图像转换为HSV颜色空间。
import cv2

img = cv2.imread('image.jpg')
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
  1. 筛选特定颜色的像素点。
import numpy as np

lower_range = np.array([h_min, s_min, v_min])
upper_range = np.array([h_max, s_max, v_max])
mask = cv2.inRange(hsv, lower_range, upper_range)

其中,h_min, s_min, v_min, h_max, s_max, v_max分别表示HSV颜色空间的三个分量的最小值和最大值,取值范围为0-179,0-255,0-255。

  1. 将筛选出的像素点变为白色,其他像素点变为黑色。
result = cv2.bitwise_and(img, img, mask=mask)

HSV基本颜色分量范围

下面给出常见HSV颜色的分量范围:

颜色 H_min S_min V_min H_max S_max V_max
红色 0 43 46 10 255 255
橙色 11 43 46 25 255 255
黄色 26 43 46 34 255 255
绿色 35 43 46 77 255 255
青色 78 43 46 99 255 255
蓝色 100 43 46 124 255 255
紫色 125 43 46 155 255 255

示例

下面给出两个HSV颜色识别的示例。

示例1:识别红色

import cv2
import numpy as np

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

# 转换为HSV颜色空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# 筛选红色
lower_range = np.array([0, 43, 46])
upper_range = np.array([10, 255, 255])
mask = cv2.inRange(hsv, lower_range, upper_range)

# 像素颜色替换
result = cv2.bitwise_and(img, img, mask=mask)

# 显示结果
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

示例2:识别绿色

import cv2
import numpy as np

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

# 转换为HSV颜色空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# 筛选绿色
lower_range = np.array([35, 43, 46])
upper_range = np.array([77, 255, 255])
mask = cv2.inRange(hsv, lower_range, upper_range)

# 像素颜色替换
result = cv2.bitwise_and(img, img, mask=mask)

# 显示结果
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

总结

OpenCV提供了基于HSV颜色空间的颜色识别方法,可以通过设置HSV分量的取值范围实现相应颜色的筛选,对于图像处理和机器视觉应用非常实用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:OpenCV HSV颜色识别及HSV基本颜色分量范围 - Python技术站

(1)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 给Java菜鸟的一些建议_关于Java知识点归纳(J2EE and Web 部分)

    给Java菜鸟的一些建议_关于Java知识点归纳(J2EE and Web 部分) 作为Java入门者,学习编程语言的过程一定是充满了艰辛和挑战的。以下建议可以帮助Java菜鸟在学习Java的过程中更有效地掌握知识点。 1. 学习基础知识 Java菜鸟最重要的是需要先掌握Java基础知识,这包括Java语言的基本语法、面向对象编程基本概念和原则、常用的数据结…

    人工智能概览 2023年5月25日
    00
  • FastDFS安装和配置整合Nginx-1.13.3的方法

    下面我来为您详细讲解如何安装和配置FastDFS,并整合Nginx-1.13.3的方法。 一、FastDFS安装 首先进入FastDFS官网http://fastdfs.org/下载解压缩包,然后进入FastDFS目录下,执行以下命令安装FastDFS: ./make.sh && ./make.sh install 安装完成后,我们需要修改f…

    人工智能概览 2023年5月25日
    00
  • python中的十大%占位符对应的格式化的使用方法

    当我们使用Python进行字符串格式化输出时,经常会用到 % 字符,这个字符在字符串中可以表示一个占位符。而在占位符后面,我们还需要指定要替换到这个占位符的值的格式。下面是Python中的十大%占位符对应的格式化使用方法。 1. %s 字符串 使用 %s 占位符可以把值格式化为字符串,这个占位符可以接收任何类型的数据,包括整数、浮点数、字符串等等。 示例: …

    人工智能概论 2023年5月25日
    00
  • Elasticsearch 在地理信息空间索引的探索和演进问题分析

    Elasticsearch 在地理信息空间索引的探索和演进问题分析 1. 地理信息空间索引的定义 地理信息空间索引是指将地理空间数据转化为统一的多维度索引结构,在该结构上进行数据的存储和查询。常见的地理信息空间索引有R树、Quadtree等。阿里巴巴的分布式搜索引擎Elasticsearch集成了地理信息空间索引功能,并针对之进行了优化。 2. Elasti…

    人工智能概论 2023年5月25日
    00
  • Python入门教程(四十一)Python的NumPy数组索引

    以下是关于“Python入门教程(四十一)Python的NumPy数组索引”的完整攻略: Python的NumPy数组索引 在Python的NumPy中,我们可以使用多种方法对数组进行索引。以下是常用的几种方式。 基本索引 基本索引是指使用“[ ]”进行索引,可以使用整数或布尔数组作为索引值。 整数索引 我们通常使用整数索引从数组中获取单个元素,同样可以使用…

    人工智能概览 2023年5月25日
    00
  • Django 多对多字段的更新和插入数据实例

    以下是关于Django多对多字段更新插入数据的完整攻略。 什么是多对多字段 在Django的ORM中,多对多字段代表了一种模型关系,允许两个模型的实例都可以有零个或多个关联对象。例如,一个学生可以加入多个俱乐部,而同样一个俱乐部也可以拥有多个学生。这种情况下,Django的ORM提供了多对多字段来实现多对多关系的维护。多对多字段允许一个模型实例与多个模型实例…

    人工智能概览 2023年5月25日
    00
  • Android使用OKHttp库实现视频文件的上传到服务器功能

    下面我会详细讲解使用OKHttp库实现视频文件上传到服务器的步骤。 1. 引入OKHttp库 首先,在项目中引入OKHttp库,可以通过在build.gradle文件中添加以下代码: dependencies { implementation ‘com.squareup.okhttp3:okhttp:4.9.1’ } 2. 创建请求体 上传视频文件需要将视频…

    人工智能概论 2023年5月25日
    00
  • 对python中的six.moves模块的下载函数urlretrieve详解

    对python中的six.moves模块的下载函数urlretrieve详解 介绍 six.moves是由six模块提供的一个适用于Python 2和3的兼容性工具,致力于让开发者在Python 2/3之间轻松移植。常用的六个子模块:- builtins- configparser- http_client- urllib- queue- xrange si…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部