openCV中基于HSV的颜色判断(红色为例)

HSV空间中H分量是计量环形渐变分布的颜色的变量,标准的红色H=0(或360),所以类红色应该以0为中值,向两边延展,一般取±30(即0~30和330~360),又openCV中H分量量化成180,所以在openCV中,H分量取值为0~15和165~180。

判断代码如下:

int hsv_h = detect_h; // detect_h是检测获得的h分量值

if (hsv_h % 165 <= 15)

{

    ​return true;

}

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCV是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。HSV(Hue, Saturation, Value)是一种颜色空间,相比于RGB颜色空间,HSV颜色空间更适合进行颜色识别和分析。 在OpenCV,可以使用HSV颜色空间来进行颜色识别。HSV颜色空间将颜色的属性分为三个维度: 1. 色调(Hue):表示颜色的类型,取值范围为0到360度。不同的颜色在色调上有不同的取值,例如红色在0度附近,绿色在120度附近,蓝色在240度附近。 2. 饱和度(Saturation):表示颜色的纯度或者饱和度,取值范围为0到1。饱和度为0表示灰度色,饱和度为1表示完全饱和的颜色。 3. 明度(Value):表示颜色的亮度或者明度,取值范围为0到1。明度为0表示黑色,明度为1表示最亮的颜色。 通过调整HSV颜色空间的参数,可以实现对特定颜色的识别。在OpenCV,可以使用cv2.cvtColor()函数将图像从BGR颜色空间转换为HSV颜色空间,然后使用cv2.inRange()函数根据设定的颜色范围提取出目标颜色的区域。 下面是一个简单的示例代码,演示了如何使用OpenCV进行颜色识别(以红色为例): ```python import cv2 import numpy as np # 读取图像 image = cv2.imread('image.jpg') # 将图像从BGR颜色空间转换为HSV颜色空间 hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # 设置红色HSV范围 lower_red = np.array([0, 100, 100]) upper_red = np.array([10, 255, 255]) # 根据设定的颜色范围提取红色区域 mask = cv2.inRange(hsv_image, lower_red, upper_red) # 对原始图像和掩膜进行位运算,提取红色区域 result = cv2.bitwise_and(image, image, mask=mask) # 显示结果 cv2.imshow('Original Image', image) cv2.imshow('Color Detection Result', result) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码首先读取一张图像,然后将图像从BGR颜色空间转换为HSV颜色空间。接着,设置了红色HSV范围,并使用cv2.inRange()函数提取出红色区域的掩膜。最后,通过对原始图像和掩膜进行位运算,提取出红色区域,并显示结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值