我的编程空间,编程开发者的网络收藏夹
学习永远不晚

OpenCV中的颜色空间实例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

OpenCV中的颜色空间实例分析

这篇文章主要讲解了“OpenCV中的颜色空间实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“OpenCV中的颜色空间实例分析”吧!

1 不同的色彩空间

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

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

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

OpenCV中的颜色空间实例分析

1.1RGB颜色空间

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

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

OpenCV中的颜色空间实例分析

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空间图像结果如下图所示:

OpenCV中的颜色空间实例分析

  • 从图中可以清楚地看出,光照的变化主要影响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颜色空间中分成其通道的两个图像如下所示:

OpenCV中的颜色空间实例分析

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

1.4 HSV颜色空间

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

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

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

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

从下图可以看到

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

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

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

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

OpenCV中的颜色空间实例分析

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

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

2.1 获取特定颜色的颜色值

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

OpenCV中的颜色空间实例分析

2.2 应用分段阈值

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

感谢各位的阅读,以上就是“OpenCV中的颜色空间实例分析”的内容了,经过本文的学习后,相信大家对OpenCV中的颜色空间实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

OpenCV中的颜色空间实例分析

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

下载Word文档

猜你喜欢

OpenCV中的颜色空间实例分析

这篇文章主要讲解了“OpenCV中的颜色空间实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“OpenCV中的颜色空间实例分析”吧!1 不同的色彩空间在本节中,我们将介绍计算机视觉中使用
2023-06-30

OpenCV 的颜色空间转换

1 # coding: utf-8 2 3 ''' 4 第13章主要介绍:颜色空间转换 5 ''' 6 7 import cv2 8 import numpy as np 9 10 '''11 经常用到的颜色空间转换是: BGR<
2023-01-30

opencv中颜色空间转换函数cv2.cvtColor()如何使用

这篇“opencv中颜色空间转换函数cv2.cvtColor()如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ope
2023-06-30

opencv+图像处理(ImageProcessinginOpenCV)4-0改变颜色空间的过程

这篇文章主要介绍了opencv+图像处理(ImageProcessinginOpenCV)4-0改变颜色空间,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-17

Python中matplotlib内置单颜色的示例分析

小编给大家分享一下Python中matplotlib内置单颜色的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、matplotlib支持的颜色格式1.RGB 或者 RGBA 元组格式颜色元组中浮点型数值位于 [0
2023-06-29

C++中的命名空间实例分析

这篇“C++中的命名空间实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++中的命名空间实例分析”文章吧。命名空间的
2023-06-29

Python OpenCV基于HSV的颜色分割如何实现

本文小编为大家详细介绍“Python OpenCV基于HSV的颜色分割如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python OpenCV基于HSV的颜色分割如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
2023-07-02

Pillow怎么实现图像的颜色空间转换

Pillow是一个Python图像处理库,可以使用它来实现图像的颜色空间转换。下面是一个示例代码,演示如何使用Pillow将一张图像从RGB色彩空间转换为灰度色彩空间:from PIL import Image# 打开图像文件img =
Pillow怎么实现图像的颜色空间转换
2024-05-22

Java基础之颜色工具类的示例分析

这篇文章主要介绍Java基础之颜色工具类的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的实现了Web MVC设计
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录