学习
实践
活动
工具
TVP
写文章

OpenCVHSV颜色识别-HSV基本颜色分量范围

一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。 HSV颜色空间  HSV(hue,saturation,value)颜色空间的模型对应于圆柱坐标系中的一个圆锥形子集,圆锥的顶面对应于V=1. 在HSV颜色模型中,每一种颜色和它的补色相差180° 。 饱和度S取值从0到1,所以圆锥顶面的半径为1。 可以说,HSV模型中的V轴对应于RGB颜色空间中的主对角线。 在圆锥顶面的圆周上的颜色,V=1,S=1,这种颜色是纯色。HSV模型对应于画家配色的方法。 HSV 以人类更熟悉的方式封装了关于颜色的信息:“这是什么颜色?深浅如何?明暗如何?”。HSL 颜色空间类似于 HSV,在某些方面甚至比它还好。HSL的模型为双圆锥形状。

3.1K10

OpenCV---HSV颜色空间介绍

前言 在OpenCV中我们有时候提取样本的时候可能会通过颜色来进行提取,那HSV颜色空间在这个时候就可以加以利用上了,本章主要是解决HSV颜色空间(摘自网上文章,在此留用),用于对HSV一个基本的认识了解 HSV颜色系统简介 HSV是一种在人们生活中甚至更常用的颜色系统,在电视遥控器上、在画画的调色板中、在你用爱某艺视频调整亮度时都很常见,因为它更符合人们描述颜色的方式——是什么颜色颜色有多深、颜色有多亮 因此对HSV我们的结论如下: ---- 当S=1 V=1时,H所代表的任何颜色被称为纯色; ---- 当S=0时,即饱和度为0,颜色最浅,最浅被描述为灰色(灰色也有亮度,黑色和白色也属于灰色),灰色的亮度由 ---- OpenCV中的HSV颜色体系 与上述HSV颜色系统不同的是,如果直接使用OpenCV中cvtColor函数,并设置参数为CV_BGR2HSV,那么所得的H、S、V值范围分别是[0,180), 此时输出结果范围和一开始所述就符合了。 ---- -END-

1.9K50
  • 广告
    关闭

    2022腾讯全球数字生态大会

    11月30-12月1日,邀您一起“数实创新,产业共进”!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    HSV颜色直方图

    com.imageretrieval.utils.Pixel; /** * 该颜色直方图更接近于人类对图片的识别程度 * @author VenyoWang * */ public class [][] hsvMatrix = new HSV[matrix.length][]; HSV[][] hsvMatrix1 = new HSV[matrix1.length][]; for(int (matrix[i][j].red, matrix[i][j].green, matrix[i][j].blue, null); HSV hsv = new HSV(); hsv.h = (int)(fs[0] * 255); hsv.s = (int)(fs[1] * 255); hsv.v = (int)(fs[2] * 255); hsvMatrix[i] hsv = new HSV(); hsv.h = (int)(fs[0] * 255); hsv.s = (int)(fs[1] * 255); hsv.v = (int

    82090

    OpenCV 利用hsv颜色空间的车牌底色检测

    一个针对车牌颜色分类的小测试,根据hsv颜色空间,遍历像素点后计算在每个颜色下的像素个数,区分蓝,黄,黑,白车牌底色。 include<ctime> #include <iostream> #include <stdio.h> #include <string> #include <stdlib.h> #include "opencv2 /objdetect/objdetect.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp " #include <opencv2/opencv.hpp> using namespace std; using namespace cv; char adr[128]={0}; int main 在白色区域里 { //白色+1 whitenum++; } else { //其他颜色 othernum++; } } }

    13230

    C++ OpenCV使用InRange对HSV颜色进行分割

    前言 上一篇中我们学习了《OpenCV---HSV颜色空间介绍》,对HSV颜色进行了一个简单的了解,这一章我们在研究一下利用颜色把想到的数据获取出来。 OpenCV中的inRange()函数可实现二值化功能(这点类似threshold()函数) 视频效果 https://v.qq.com/x/page/l13584t9l4w.html API函数 void ---- 代码演示 我们再新建一个项目名为opencv--video2,按照配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法 ? ? 在《》一篇中的颜色HSV的表格中我们可以看到蓝色的H范围在100-124之间,S的范围在43-255之间,V的范围在46-255之间,如下图: ? 所以我们在代码中先把这两个范围值定义出来 ? 然后我们在视频播放的时候需要对原始图像转换变HSV图像,然后通过InRange把颜色分割后显示出来 ? 运行后的效果就是文章开始的视频,下面是视频中的屏幕截图 ?

    4.6K20

    颜色转换,利用HSV颜色空间检测

    绘制颜色通道 #RGB channels R = image[:, :, 0] G = image[:, ;, 1] B = image[:, :, 2] f, (ax1, ax2, ax3) = plt.subplots # Convert from RGB to HSV hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV) # HSV channels h = hsv[:,:,0] s = hsv[:,:,1] v = hsv[:,:,2] f, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(20,10)) ax1.set_title Now try HSV! # Define the masked area in HSV space mask_hsv = cv2.inRange(hsv, lower_hue, upper_hue) # mask the image

    27710

    颜色空间RGB与HSV(HSL)的转换

    HSV 模型在 1978 年由埃尔维·雷·史密斯创立。 动机 艺术家有时偏好使用 HSV 颜色模型而不选择 RGB 或 CMYK 模型,由于它类似于人类感觉颜色的方式。 HSL 颜色空间类似于 HSV,在某些方面甚至比它还好。 [编辑]用途 HSV 色轮同意用户高速的选择众多颜色。 此外计算机典型的用有限精度范围来存储 RGB 值;这约束了精度,再加上人类颜色感知的限制,使圆锥体表示在多数情况下更有用。 在 HSL 中,亮度跨越从黑色过选择的色相到白色的完整范围(在 HSV 中,V 分量仅仅走一半行程,从黑到选择的色相)。 Bryce GIMP(HSV 用于颜色选择,HSL 用于颜色调整) [编辑]与其它颜色模型的比較 HSV 颜色空间在技术上不支持到辐射測定中測量的物理能量谱密度的一一映射。

    82810

    python下对hsv颜色空间进行量化操作

    由于工作需要,需要计算颜色直方图来提取颜色特征,但若不将颜色空间进行量化,则直方图矢量维数过高,不便于使用。 但是看了opencv API后并未发现提供了相关函数能够在计算颜色直方图的同时进行量化,因此这部分功能只能自己实现。 下面分为两个部分进行介绍: 一、颜色空间量化表 由于RGB模型不够直观,不符合人类视觉习惯,因此在进行颜色特征提取前,需要将照片从RGB颜色模型转换为更符合人类视觉的HSV模型。 在提取颜色特征时,最常用的方法之一为颜色直方图法,但一张图片中出现的颜色一般特别多,导致直方图矢量的维数较高,因此需要对HSV空间进行量化。 直方图量化 value : [21, 144, 23] h, s, v opencv中,h-[0,180], s-[0,255], v-[0,255] ''' # value[0]

    89030

    由RGB到HSV颜色空间的理解

    HSV模型 3. 如何理解RGB与HSV的联系 4. HSV在图像处理中的应用 在图像处理中,最常用的颜色空间是RGB模型,常用于颜色显示和图像处理,三维坐标的模型形式,非常容易被理解。 而HSV模型,是针对用户观感的一种颜色模型,侧重于色彩表示,什么颜色、深浅如何、明暗如何。 v = max(r, g, b) 由RGB到HSV的转换: ? "  HSV对用户来说是一种直观的颜色模型。 HSV在图像处理应用 HSV在用于指定颜色分割时,有比较大的作用。 H和S分量代表了色彩信息。 分割应用: 用H和S分量来表示颜色距离,颜色距离指代表两种颜色之间的数值差异。 Androutsos等人通过实验对HSV颜色空间进行了大致划分,亮度大于75%并且饱和度大于20%为亮彩色区域,亮度小于25%为黑色区域,亮度大于75%并且饱和度小于20%为白色区域,其他为彩色区域。

    37440

    超简单的视频对象提取程序

    视频对象提取 与其说是视频对象提取,不如说是视频颜色提取,因为其本质还是使用了OpenCVHSV颜色物体检测。 Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model); 色调(H:hue):用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120 它们的补色是:黄色为60°,青色为180°,品红为300°;(OpenCV中H的取值范围为0~180,8bit存储时); 饱和度(S:saturation):取值范围为0~255,值越大,颜色越饱和; 实现思路 如上效果图所示,我们要做的就是把视频中的绿色的小猪佩奇识别出来即可,下面是的识别步骤: 使用PS取的小猪佩奇颜色的HSB值,相当于OpenCVHSV,不过PS的HSV(HSB)取值是:0~360 、0~1、0~1,而OpenCVHSV是:0~180、0~255、0~255,所以要对ps的hsv进行处理,H/2、SV*255; 使用OpenCV位“与运算”提取HSV颜色部分画面; 使用高斯模糊优化图片

    43440

    手把手教你用OpenCV做人脸口罩佩戴检测(附详细步骤+代码)

    ])#颜色范围低阈值 upper_hsv_1 = np.array([40,255,255])#颜色范围高阈值 lower_hsv_2 = np.array([140,30,30])#颜色范围低阈值 upper_hsv _2 = np.array([180,255,255])#颜色范围高阈值 mask1 = cv2.inRange(hsv_img,lower_hsv_1,upper_hsv_1) mask2 = cv2 cvtColor(img,cv2.COLOR_BGR2HSV) lower_hsv_1 = np.array([0,30,30])#颜色范围低阈值 upper_hsv_1 = np.array( [40,255,255])#颜色范围高阈值 lower_hsv_2 = np.array([140,30,30])#颜色范围低阈值 upper_hsv_2 = np.array([180,255,255 ])#颜色范围高阈值 mask1 = cv2.inRange(hsv_img,lower_hsv_1,upper_hsv_1) mask2 = cv2.inRange(hsv_img,lower_hsv

    8.3K63

    如何使用 OpenCV Python 检测颜色

    在这篇文章中,我们将看到如何使用 Python 中的 OpenCV 模块检测颜色,进入这个领域的第一步就是安装下面提到的模块。 读取图像并使用 OpenCV 模块中的 cvtColor() 函数将BGR图像转换为 HSV (色调、饱和度、值) 图像, 现在,选择我们想要检测的颜色,并使用如下所示的HSV颜色贴图获得较低和较高的 在 OpenCV 中,色调的值从0到180,饱和度的值从0到255。因此,OpenCV 使用的 HSV范围在 (0–180, 0–255, 0–255) 之间。 HSV 颜色图 H 根据 x 轴取值,S 根据 y 轴取值,V 始终在 (20-255) 之间的范围内取值。 使用 HSV 值,我们需要使用 OpenCV 模块中的 inRange() 函数找到掩码并将其分配给变量(掩码)。

    68320

    四、了解色彩空间及其详解

    由于在opencv中,RGB的数据类型为uint8,那么就可以有256256256=16777216种颜色,这些颜色都在这个笛卡尔坐标系中进行表示。 以下是RGB的色彩空间图,图片来源于网络。 2.3 HSV颜色空间 HSV颜色空间是一种表示色调、饱和度以及亮度的颜色空间,其中H(hue)指的是色调,就是平常一些颜色,如黄色、绿色、红色等;S(saturation)指的是饱和度、V(value HSV是一种更接近于人类感知的一种颜色空间,它是根据人对色彩的观察从而产生的。 其中H色调是描述纯色,S饱和度是与白光叠加后的描述。 以下是HSV的色彩空间图,图片来源于网络。 ? 从图中得知,色调Hue的取值为0到360,但是在opencv中取值为0-180,这点是有一定区别;S饱和度S取值范围为0.0~1.0,在opencv中取值为0-255;V亮度取值范围为0.0-1.0,在 从图中我们可以得知,Value值越小则越黑,Hue则是色彩范围,S则是值越大颜色更加纯。 有一个与HSV非常相似的色彩空间,名为HSL。

    52810

    使用颜色空间进行图像分割

    使用颜色空间进行简单分割 颜色空间和使用opencv读取图像 在RGB颜色空间可视化小丑鱼 在HSV颜色空间可视化小丑鱼 选取范围 这个分割是否可以泛化到小丑鱼的亲属? 在本文中,您将学习如何使用OpenCV基于Python中的颜色从图像中简单地分割对象。OpenCV是一个流行的计算机视觉库,用c/c++编写,带有Python绑定,提供了操作颜色空间的简单方法。 选取范围 让我们根据一系列简单的橙色来判断尼莫的阈值。你可以通过观察上面的图或者在线使用颜色挑选应用程序来选择范围,比如这个RGB到HSV工具。 一旦你获得了合适的颜色范围,你可以使用cv2.inrange()来尝试阈值Nemo,inRange()采用三个参数:图像、较低范围和较高范围。 总结 在本教程中,您已经看到了几个不同的颜色空间,一幅图像是如何分布在RGB和HSV颜色空间中的,以及如何使用OpenCV颜色空间之间进行转换和分割范围

    4.3K30

    基于OpenCV的彩色空间互转

    ,像素值的范围是[0,255]。 每个色彩通道值的范围都在[0,255]之间,我们用这三个色彩通道的组合表示颜色。下图表示不同RGB对应的颜色: ? 三个通道都是0表示黑色,三个通道都是255表示白色。 灰度颜色的饱和度值是0。如果颜色的饱和度很低,那么它计算所得的色调不可靠。在OpenCV内,饱和度要映射到[0,255]范围内。 3. 亮度(V) 反应的是人眼感受到的光的明暗程度。 在OpenCV内,亮度也要映射到[0,255]范围内。 RGB颜色空间中,三种颜色分量的取值与所生成的颜色之间的联系并不直观。 将BGR分别转换为GRAY、HSV,再转换回BGR #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include

    59010

    opencv颜色过滤只留下图片中的红色区域操作

    一开始的想法是分别找到RGB值,然后找到红色区域的部分保留就可以了,不过好像很难确定红色区域的RGB取值范围,所以要把图片转化到HSV空间中去。 IplImage* hsv = cvCreateImage( cvGetSize(image), 8, 3 ); cvCvtColor(image,hsv,CV_BGR2HSV); opencv s_hsv = cvGet2D(hsv, i, j);//获取像素点为(j, i)点的HSV的值 /* opencv 的H范围是0~180,红色的H范围大概是(0~8)∪(160,180) S 补充知识:opencv实现图像去除单一颜色背景 思路 ? 因为背景是固定颜色,很容易筛选出背景,然后将其设为白色完全透明即可。 emmm,事实证明背景附近的颜色不是严格的背景色,后来将字填充后好多了。 ? 以上这篇opencv颜色过滤只留下图片中的红色区域操作就是小编分享给大家的全部内容了,希望能给大家一个参考。

    2.2K10

    05: 颜色空间转换

    目标 颜色空间转换,如BGR↔Gray,BGR↔HSV等 追踪视频中特定颜色的物体 OpenCV函数:cv2.cvtColor(), cv2.inRange() 教程 颜色空间转换 import cv2 视频中特定颜色物体追踪 HSV是一个常用于颜色识别的模型,相比BGR更易区分颜色,转换模式用COLOR_BGR2HSV表示。 经验之谈:OpenCV中色调H范围为[0,179],饱和度S是[0,255],明度V是[0,255]。 现在,我们实现一个使用HSV来只显示视频中蓝色物体的例子,步骤如下: 捕获视频中的一帧 从BGR转换到HSV 提取蓝色范围的物体 只显示蓝色物体 import numpy as np capture 那蓝色的HSV值的上下限lower和upper范围是怎么得到的呢?

    16920

    体感游戏 | 手势识别玩飞机大战游戏(二) Python+OpenCV实现简易手势识别功能

    后面将分四篇文章来介绍实现手势识别控制飞机大战游戏的功能,它们分别是: 使用Pygame实现简易飞机大战小游戏 使用Python+OpenCV实现简单手势识别 使用OpenCV实现手势识别玩飞机大战游戏 hsv_img=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) lower_hsv_1 = np.array([0,50,50])#颜色范围低阈值 upper_hsv_1 = np.array([20,255,255])#颜色范围高阈值 lower_hsv_2 = np.array([150,50,50])#颜色范围低阈值 upper_hsv_2 = np.array([180,255,255 ])#颜色范围高阈值 mask1 = cv2.inRange(hsv_img,lower_hsv_1,upper_hsv_1) mask2 = cv2.inRange(hsv_img,lower_hsv 视频效果: 源码请在公众号回复"手势识别"即可获取,更多视觉学习资讯请关注:OpenCV与AI深度学习,感谢支持!

    69110

    颜色模型与转换

    本小节中将介绍几种OpenCV 4中能够互相转换的常见的颜色模型,例如RGB模型、HSV模型、Lab模型、YUV模型以及GRAY模型,并介绍这几种模型之间的数学转换关系,以及OpenCV 4中提供的这几种模型之间的变换函数 三个通道对于颜色描述的范围是相同的,因此RGB颜色模型的空间构成是一个立方体。 1 03 HSV颜色模型 HSV是色度(Hue)、饱和度(Saturation)和亮度(Value)的简写,通过名字也可以看出来该模型通过这三个特性对颜色进行描述。 色度是色彩的基本属性,就是平时常说的颜色,例如红色,蓝色等;饱和度是指颜色的纯度,饱和度越高色彩越纯越艳,饱和度越低色彩则逐渐地变灰变暗,饱和度的取值范围是由0到100%;亮度是颜色的明亮程度,其取值范围颜色模型转成RGB颜色模型 COLOR_BGR2HSV 40 RGB颜色模型转成HSV颜色模型 COLOR_HSV2BGR 54 HSV颜色模型转成RGB颜色模型 COLOR_BGR2Lab 44 RGB

    78131

    OpenCV学习:物体跟踪

    [1] 在HSV颜色空间中,比在RGB颜色空间中更容易表示一种特定颜色,所以我们利用这一点可以更容易地提取带有某个特定颜色的物体。 HSV 格式中,H(色彩/色度)的取值范围是 [0,179],S(饱和度)的取值范围 [0,255],V(亮度)的取值范围 [0,255]。 所以当你需要拿 OpenCVHSV 值与其他软件的 HSV 值进行对比时,一定要记得归一化。 ret,frame=cap.read() #转换到HSVHSV里面颜色区别更大 hsv=cv2.cvtColor(frame,cv2.COLOR_RGB2HSV) # 颜色识别-HSV基本颜色分量范围,确定蓝色的HSV区间,结果发现并不能检测出想要的结果,最后不断调整区间在色相区间[11,25]内有较好结果,还不知道是哪里不准确,怀疑是实验室的灯光的原因,有了解的朋友可以留言

    25420

    扫码关注腾讯云开发者

    领取腾讯云代金券