广告
返回顶部
首页 > 资讯 > 后端开发 > Python >OpenCV实战之OpenCV中的颜色空间
  • 969
分享到

OpenCV实战之OpenCV中的颜色空间

2024-04-02 19:04:59 969人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1 不同的色彩空间1.1RGB颜色空间1.2 Lab色彩空间1.3  YCrCb颜色空间1.4 HSV颜色空间2 如何使用这些颜色空间进行分割2.1 获取特定颜色的颜色

在本教程中,我们将了解计算机视觉中常用的色彩空间,并将其用于基于颜色分割。我们还将用C ++和python共享演示代码。

在进行色彩分割时很多项目没有考虑到不同光照条件的影响,会严重影响结果。在许多计算机视觉应用中遇到这个问题,涉及基于颜色的分割,如肤色检测,交通灯识别等。所以构建一个强大的色彩检测系统是很有必要的。

文章结构如下:

1首何在OpenCV中读取图像并将其转换为不同的颜色空间,并查看每个颜色空间的不同通道为我们提供的新信息。

2应用一个简单的颜色分割算法

1 不同的色彩空间

在本节中,我们将介绍计算机视觉中使用的一些重要的色彩空间。我们不会描述它们背后的理论,我们只需要知道如何使用。

OpenCV颜色空间转换很简单,imread函数读取图像以BGR格式加载,cvtColor函数在不同的颜色空间之间进行转换。

下图是不同的照明下的立方体图像。第一张图像是在阳光明媚的室外条件下拍摄的,而第二张图像是在室内光线条件正常的情况下拍摄的。

1.1RGB颜色空间

RGB颜色空间具有以下属性: 1. 它是一种加色空间,其中颜色通过红色R,绿色G和蓝色B的线性组合获得。1. 物体光照会影响该颜色空间各个通道值,三个颜色通道是具有相关性的。 让我们将上面图像分成R,G和B分量并观察它们以更深入地了解色彩空间。

从下图可以看到如果你看蓝色通道,可以看到在室内光照条件下第二张图像中的魔方蓝色和白色部分看起来相似,但第一张图像有明显差异。这种不均匀性使得在该颜色空间中基于颜色的分割非常困难。此外,两个图像的值之间存在总体差异。因此RGB颜色空间存在颜色值分布不均匀以及色度和亮度混合在一起的问题。

1.2 Lab色彩空间

类似RGB空间,Lab也有三个图像通道。

  • L:亮度通道,表亮度。
  • a:颜色通道a,表示从绿色到洋红色的颜色。
  • b:颜色通道b,表示从蓝色到黄色的颜色。

Lab颜色空间与RGB颜色空间完全不同。在RGB颜色空间中,颜色信息被分成三个通道,但是相同的三个通道也包含亮度信息。另一方面,在Lab颜色空间中,L通道独立于颜色信息并仅只含亮度信息。另外两个通道编码颜色。

Lab颜色空间还具有以下特性: 1. 感知上均匀的色彩空间近似于我们如何感知色彩。1. 独立于设备(捕获或显示)。1. 广泛用于Adobe Photoshop。1. 通过复数变换方程与RGB颜色空间相关。 OpenCV中读取图像,转换为Lab空间图像结果如下图所示:

  • 从图中可以清楚地看出,光照的变化主要影响l分量。1. 包含颜色信息的a和b分量,在光照的变化下没有经历大的变化。1. 绿色,橙色和红色(它们是a通道的主要颜色)的相应值在b通道中没有变化,同样地,蓝色和黄色(它们是b通道的主要颜色)在a通道中没有变化。 ##

1.3  YCrCb颜色空间

YCrCb颜色空间源自RGB颜色空间,并具有以下三个成分。

  • 通道Y:伽马校正后从RGB获得的亮度或亮度分量。
  • 通道Cr:Cr=R-Y(红色成分与亮度成分Y的距离)。
  • 通道Cb:Cb=B-Y(蓝色成分与亮度成分Y的距离)。

此颜色空间具有以下属性。 1. 将亮度和色度分量分成不同的通道。1. 主要用于电视传输的压缩(Cr和Cb组件)。1. 取决于设备。 YCrCb颜色空间中分成其通道的两个图像如下所示:

对于照度变化,可以针对强度和颜色分量对LAB进行类似的观察。与LAB相比,室外图像中红色和橙色之间的感知差异较小。白色在所有3个组件中发生了变化。

1.4 HSV颜色空间

HSV颜色空间具有以下三个成分:

H色调,S饱和度,V明度。

HSV最大的特点是它只使用一个通道来描述颜色(H),这使得指定颜色变得非常直观。但是HSV色彩取决于设备。

两个图像的H,S和V分量如下所示。

从下图可以看到

H分量在两个图像中非常相似,这表明即使在光照变化下颜色信息也是完整的。

两个图像中的S分量也非常相似。

V分量表示亮度,因此它会因照明变化而发生变化。

红色室外和室内图像的值之间存在巨大差异。这是因为H值是以角度表示红色表示起始角度。因此它可能会取角度 [300,360]和[0,60]之间的值。

2 如何使用这些颜色空间进行分割

现在我们已经了解了不同的颜色空间,让我们首先尝试使用它们来检测魔方中的绿色。

2.1 获取特定颜色的颜色值

找到每个颜色空间的绿色值的近似范围。通过获取每个像素的所有颜色空间的值,如下所示:

2.2 应用分段阈值

该部分就不叙述了,详情见参考,实际用处不大。只是应用inRange函数选择合适的阈值分割图像而已。在实际中,通过颜色分割图像一般效果很差。建议不要使用,了解下就行了。

到此这篇关于OpenCV实战之OpenCV中的颜色空间的文章就介绍到这了,更多相关OpenCV颜色空间内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: OpenCV实战之OpenCV中的颜色空间

本文链接: https://www.lsjlt.com/news/117615.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • OpenCV实战之OpenCV中的颜色空间
    目录1 不同的色彩空间1.1RGB颜色空间1.2 Lab色彩空间1.3  YCrCb颜色空间1.4 HSV颜色空间2 如何使用这些颜色空间进行分割2.1 获取特定颜色的颜色...
    99+
    2022-11-10
  • OpenCV 的颜色空间转换
    1 # coding: utf-8 2 3 ''' 4 第13章主要介绍:颜色空间转换 5 ''' 6 7 import cv2 8 import numpy as np 9 10 ''' 11 经常用到的...
    99+
    2023-01-30
    颜色 空间 OpenCV
  • OpenCV中的颜色空间实例分析
    这篇文章主要讲解了“OpenCV中的颜色空间实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“OpenCV中的颜色空间实例分析”吧!1 不同的色彩空间在本节中,我们将介绍计算机视觉中使用...
    99+
    2023-06-30
  • opencv中颜色空间转换函数cv2.cvtColor()使用
    opencv中有多种色彩空间,包括 RGB、HSI、HSL、HSV、HSB、YCrCb、CIE XYZ、CIE Lab8种,使用中经常要遇到色彩空间的转化,以便生成mask图等操作。...
    99+
    2022-11-11
  • opencv中颜色空间转换函数cv2.cvtColor()如何使用
    这篇“opencv中颜色空间转换函数cv2.cvtColor()如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ope...
    99+
    2023-06-30
  • opencv+图像处理(ImageProcessinginOpenCV)4-0改变颜色空间的过程
    目录0.本节涉及的opencv新函数1.彩色的形成2.彩色空间3.为什么需要选择合适的彩色空间4.如何选择合适的彩色空间5.常用的彩色空间 RGB6.变换彩色空间数学公式7.open...
    99+
    2023-05-17
    opencv图像处理改变颜色空间 opencv图像处理 opencv颜色空间转换
  • Python实战之基于OpenCV的美颜挂件制作
    基于 Snapchat 的增强现实 胡子挂件融合 第一个项目中,我们将在检测到的脸上覆盖了一个小胡子。我们可以使用从摄像头捕获的连续视频帧,也可以使用单张测试图像。在进行实际讲解程序...
    99+
    2022-11-12
  • OpenCV基础HSV颜色空间*args与**kwargs滑动条传参问题
    目录一、基础理论1、Hue(色相)2、Value(明度)3、Saturation(饱和度)二、hsv三通道及单通道效果三、*args && **kwargs四、滚动条...
    99+
    2022-11-12
  • OpenCV半小时掌握基本操作之色彩空间
    目录概述色彩空间色彩空间转换视频阈值【OpenCV】⚠️高手勿入! 半小时学会基本操作⚠️色彩空间 概述 OpenCV 是一个跨平...
    99+
    2022-11-12
  • Python+OpenCV实现基于颜色的目标识别
    目录任务主要代码效果展示学习了一点opencv的知识于是找了个小项目来实践一下。这里先说明一下,我的实现方法不见得是最好的(因为这只是一个用于练习的项目)仅作参考,也欢迎各位大佬指正...
    99+
    2022-11-12
  • 基于opencv实现视频中的颜色识别功能
    目录颜色识别的原理opencv中的颜色模型颜色识别的实现(c++)颜色识别的原理 opencv中的颜色模型 RGB RGB具有三个通道其,分别表示红色通道®,绿色通道(G),...
    99+
    2022-11-13
  • Python OpenCV基于HSV的颜色分割实现示例
    目录前言1、什么是HSV2、代码实战2.1 createTrackbar使用方法及步骤2.2 代码详解3、总结前言 一周没有更新博客了,这一周的时间内加强了对机器学习和图像处理的学习...
    99+
    2022-11-11
  • Python OpenCV基于HSV的颜色分割如何实现
    本文小编为大家详细介绍“Python OpenCV基于HSV的颜色分割如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python OpenCV基于HSV的颜色分割如何实现”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-07-02
  • Python+OpenCV实战之利用 K-Means 聚类进行色彩量化
    目录前言利用 K-Means 聚类进行色彩量化完整代码显示色彩量化后的色彩分布前言 K-Means 聚类算法的目标是将 n 个样本划分(聚类)为 K 个簇,在博文《OpenCV与机器...
    99+
    2022-11-12
  • C++OpenCV实战之网孔检测的实现
    目录前言一、HSV通道转换二、图像修复2.1 OpenCV函数实现2.2 MyFunction三、轮廓提取四、效果显示五、源码总结前言 前段时间,有位粉丝私信我,给我发了一张图片,如...
    99+
    2022-11-13
  • 通过OpenCV实现对指定颜色的物体追踪
    本文实现对特定颜色的物体追踪,我实验用的是绿萝的树叶。 新建脚本ball_tracking.py,加入代码: import argparse from collections i...
    99+
    2022-11-12
  • Python+OpenCV如何实现基于颜色的目标识别
    这篇文章给大家介绍Python+OpenCV如何实现基于颜色的目标识别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。任务让摄像头识别到视野范围内的气球并返回每个气球的中心点坐标。因为场地固定,背景单一,所以省下来很多操...
    99+
    2023-06-22
  • C++OpenCV实战之标记点检测的实现
    在实际应用中,能够直接利用霍夫圆检测这些理想方法的应用场景是非常少的,更多的是利用拟合的办法去寻找圆形。 大致思路如下,首先先选择要处理的ROI部分,记录下该图的左上点在原图的坐标,...
    99+
    2022-11-13
  • Python-OpenCV实现简单的颜色识别(对红色和蓝色识别并输出)
    摄像头识别红色和蓝色并框选,当该颜色为摄像头屏幕上大多数颜色时打印出该颜色的名称 新手学习笔记,第一次写博客,若有错误还请指出( ~`_` )~ 1.调包 import cv2import numpy as npfrom matpl...
    99+
    2023-09-08
    python opencv 计算机视觉
  • OpenCV实战之图像拼接的示例代码
    目录背景实现步骤一、读取文件二、单应性矩阵计算三、图像拼接总结背景 图像拼接可以应用到手机中的全景拍摄,也就是将多张图片根据关联信息拼成一张图片; 实现步骤 1、读文件并缩放图片大小...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作