图像格式RGB-HSV-YUV

news2024/10/6 16:27:42

文章目录

  • 一、RGB色彩空间
  • 二、HSV 色彩空间
  • 三、YUV 色彩空间
  • 四、色彩空间的转换

待更新中

  • FPGA实现RGB与HSV的转换

一、RGB色彩空间

RGB 是最常用于显示器的色彩空间,R(red)是红色通道,G(green)是绿色,B(blue)是蓝色通道。这三种颜色以不同的量进行叠加,就可以显示出五彩缤纷的色彩。
RGB 格式里(0,0,0)代表着黑色,(255,255,255)代表着白色。R channel数值越高,说明颜色中含有的红色分量越多。

通常,RGB 格式的图片都是用于计算机屏幕显示。注意: OpenCV(开源计算机视觉库,包含了许多可用的视觉算法,图像处理必备神器)图像通道的默认排序是 BGR。

RGB转16进制工具/对应RGB颜色查看
RGB直方图

二、HSV 色彩空间

在 HSV 色彩空间中 H,S,V 这三个通道分别代表着色相(Hue),饱和度(Saturation)和明度(Value)。
HSV 格式: H 代表色彩,S 代表颜色的深浅,V 代表着颜色的明暗程度。

H——Hue即色相,就是我们平时所说的红、绿,如果你分的更细的话可能还会有洋红、草绿等等;在HSV模型中,用度数来描述色相,其中红色对应0度,绿色对应120度,蓝色对应240度。
S——Saturation即饱和度,色彩的深浅度(0-100%) ,对于一种颜色比如红色,我们可以用浅红——大红——深红——红得发紫等等语言来描述它(请原谅一个纯理科生的匮乏的颜色系统),对应在画水彩的时候即一种颜料加上不同分量的水形成不同的饱和度。
V——Value即色调,纯度,色彩的亮度(0-100%) ,这个在调整屏幕亮度的时候比较常见。

HSV 颜色空间可以很好地把颜色信息和亮度信息分开,将它们放在不同的通道中,减小了光线对于特定颜色识别的影响。
在 OpenCV 视觉库中,HSV 的数值被做了一些小的修改, H 的范围调整为 0~180,S 和 V 的范围为 0~255。

在这里插入图片描述
当我们采用 HSV 的图像阈值得到某一种颜色时,可以参考颜色分布表,先将 H 通道对应的颜色找到。表格中,每种颜色都对应了一个区间。
在这里插入图片描述

三、YUV 色彩空间

YUV格式有两大类:planarpacked
对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。
对于packed的YUV格式,每个像素点的Y,U,V是连续交替存储的。

YUV 色彩空间实际上是把一幅彩色的图片分成了一个表示暗亮程度的亮度信号(Luminance)Y,和两个表示颜色的色度信号(Chrominance)U 和 V。

U,V通道分别是蓝色通道和红色通道,Y 通道表示亮度信息。
U 通道数值越高,颜色就越接近蓝色,V 通道数值越高,颜色就越接近红色,Y 通道数值越高,图片则越亮。

YCbCr,YPbPr 都属于 YUV,区别只是适用于不同的显示设备。
计算机上适用的一种 YUV 类型是 YCbCr, Cb 指蓝色色度,Cr 指红色色度。

YUV主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV方式传送占用极少的频宽。
YUV码流的存储格式其实与其采样的方式密切相关,主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0。

YUV 采样格式介绍
在这里插入图片描述

四、色彩空间的转换

RGB 转换成 HSV 的转换公式为:
在这里插入图片描述
或者:
在这里插入图片描述
或者:
在这里插入图片描述

HSV转换成 RGB的转换公式为:
在这里插入图片描述
或者:
在这里插入图片描述
或者:
在这里插入图片描述

RGB 转换成 YUV 的转换公式为:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1539.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(附源码)计算机毕业设计SSM教师教学质量评价系统

(附源码)计算机毕业设计SSM教师教学质量评价系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术…

【数据结构与算法】手写HashMap的模拟实现

✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【数据结构与算法】 ✈️✈️本篇内容:手写HashMap的模拟实现! 🚀🚀代码存放仓库gitee:Java数据结构代码存放&…

目标检测 YOLOv5 - Rockchip rknn模型的测试 包括精度,召回率,mAP等详细信息

目标检测 YOLOv5 - Rockchip rknn模型的测试 包括精度,召回率,mAP等详细信息 flyfish 该测试是使用了自定义128张图片的测试结果,如果采用官网的coco128图片数据会比下列数值更好看。 以下是对比结果,pt模型的测试结果和rknn模型…

进程互斥的实现方法

文章目录进程互斥的软件实现方法单标志法双标志先检查法双标志后检查法Peterson算法img硬件实现进程互斥中断屏蔽方法TestAndSet指令Swap指令进程互斥的软件实现方法 软件实现方法的思想:在进入区设置并检查一些标志 来标明是否有进程在临界区中,若已有进程在临界区…

MyBatis

最近新开了个项目&#xff0c;记录第一次新开项目做得一些步骤&#xff0c;整合mybatis就是重要的一步&#xff0c;这里我演示了依赖的添加&#xff0c;逆向文件的生成。 1.整合mybatis 1.1基础配置 先添加依赖&#xff0c;再增加配置文件 dependencies <!--Spring Boot …

Java 开发工具 Eclipse

目录 一、Eclipse 概述 二、Eclipse 安装与汉化 三、创建 Java 项目 四、创建 Java 类 五、运行 Java 程序 六、Eclipse 调试程序 &#xff08;方法一&#xff09; 七、Eclipse 调试程序 &#xff08;方法二&#xff09; 工欲善其事&#xff0c;必先利…

Linux文件查找find

目录 前言 查找命令 命令演示 1.which&#xff1a;命令查找 2.locate命令 3.find命令&#xff08;主要使用这个命令进行查找文件&#xff09; 1&#xff09;语法 2&#xff09;find的用法介绍 按文件名查找 手动写入指定大小数据到文件内&#xff0c;介绍一下dd命令。…

【兄弟反目成仇系列】:我只是写了一个爆炸信息窗口脚本,好兄弟追了我几条街~

文章目录✨ 真的来咯~&#x1f4a5;爆炸信息窗口&#x1f4a1;设计思路&#x1f511;模块准备⚠️删除好友警告⚠️源代码❓这时你可能会问&#x1f440; 批量获取表情包&#x1f6c0;结束语专栏Python零基础入门篇&#x1f525;Python网络蜘蛛&#x1f525;Python数据分析Djan…

高德地图 API,点击地图标记获取自定义标记 (Marker) 中的信息

高德地图 API&#xff0c;点击地图标记获取自定义标记 (Marker) 中的信息 通过 高德地图 JS Web 添加自定义图标&#xff0c;自定义窗口标记 已经能在地图中正常添加自定义标记了 这篇文章讲讲点击标记时&#xff0c;如何从自定义标记中获取你需要的信息&#xff0c;如何预置一…

计算机网络【IP协议与以太网】

计算机网络【IP协议与核心协议】&#x1f34e;一.IP协议&#x1f352;1.1IPv4协议格式&#x1f352;1.2 IP协议地址&#x1f352;1.3IPv4协议的解决方案&#x1f352;1.4路由选择(了解)&#x1f34e;二.以太网协议&#x1f352;2.1以太网协议格式&#x1f352;2.2认识MTU(了解)…

聊一聊JAVA中的缓存规范 —— 虽迟但到的JCache API与天生不俗的Spring Cache

为何需要规范 上一章中构建的最简化版本的缓存框架&#xff0c;虽然可以使用&#xff0c;但是也存在一个问题&#xff0c;就是它对外提供的实现接口都是框架根据自己的需要而自定义的。这样一来&#xff0c;项目集成了此缓存框架&#xff0c;后续如果想要更换缓存框架的时候&a…

哈希的应用

文章目录前言一、位图1.1位图概念1.2位图的实现1.3 位图的应用二、 布隆过滤器2.1 布隆过滤器提出2.2 布隆过滤器概念2.3 布隆过滤器的插入2.4 布隆过滤器的哈希函数2.5 布隆过滤器的查找2.6 布隆过滤器删除2.7 布隆过滤器的优点2.8 布隆过滤器的缺陷2.9 布隆过滤器的应用场景前…

散射辐射变送器的优势体现在哪些方面?

散射辐射是经过大气分子、水蒸气、灰尘等质点的散射&#xff0c;改变了方向的太阳辐射&#xff0c;也称天空散射辐射。太阳散射辐射强弱程度与太阳辐射的入射角、大气条件&#xff08;云量、水汽、砂粒、烟尘等粒子的多少&#xff09;和地面反射率有关。当天空的浑浊程度加大&a…

链路状态路由协议 OSPF (三)

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.OSPF领接关系的建立 1.OSPF领接关系的建立概述 &#xff0…

彻底理解Java并发:乐观锁与CAS

本篇内容包括&#xff1a;悲观锁与乐观锁的概述、CAS&#xff08;Compare And Swap&#xff09;比较并交换的介绍、非阻塞算法与ABA问题&#xff0c;以及对 Java 中 CAS 的实现解读&#xff08;AtomicInteger 对 CAS 的实现&#xff0c;Unsafe 类简介&#xff09;。 一、悲观锁…

【树莓派不吃灰】Raspberry Pi上搭建NodeJS运行环境

目录1. 前言2. 安装NodeJS环境2.1 安装npm2.2 安装nodejs2.3 配置NPM国内镜像源3. 总结❤️ 博客主页 单片机菜鸟哥&#xff0c;一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2022-10-28 ❤️❤️ 本篇更新记录 2022-10-28 ❤️&#x1f389; 欢迎关注 &#x1f50e;点赞…

嵌入式C语言编程中经验教训总结(八)变量、指针和指针数组的内存管理

目录嵌入式C语言编程中经验教训总结&#xff08;八&#xff09;变量、指针和指针数组的内存管理变量、指针和指针数组的内存占用指针、指针数组的空间验证指针数组的元素数据访问方法嵌入式C语言编程中经验教训总结&#xff08;八&#xff09;变量、指针和指针数组的内存管理 …

【趣学算法】第一章读书笔记

14天阅读挑战赛 *努力是为了不平庸~ 算法学习有些时候是枯燥的&#xff0c;这一次&#xff0c;让我们先人一步&#xff0c;趣学算法&#xff01; 文章目录1.1打开算法之门1.2 妙不可言——算法复杂性算法的特性好算法的标准时间复杂度和空间复杂度时间复杂度空间复杂度宕机1.4算…

62. 如何通过增强(Enhancement) 的方式给 SAP ABAP 标准程序增添新功能

文章目录 如何找到可以创建增强实现的增强点位置如何创建增强实现如何在 SE80 里找到增强实现本身如何调试 ABAP 增强实现总结ABAP 系统有比较完善的修改控制权限管控,比如笔者试图修改一个 SAP ABAP 系统里标准的函数,就会遇到如下的警告消息,然后修改的尝试会被阻止: You…

Winform和ASP.NET、Web API详解

Winform和ASP.NET、Web API 一、winform基础 1.1 基础学习 1、 winform应用程序是一种智能客户端技术&#xff0c;我们可以使用winform应用程序帮助我们获得信息或者传输信息等。 2、属性 Name:在后台要获得前台的控件对象&#xff0c;需要使用Name属性。 visible:指示一…