IP库新增多种颜色转换空间IP

5e318fcadb36068865e9086068421d40.jpeg

颜色空间转换是图像及视频中常用的解决方案,涉及hsv-rgb、rgb-ycrcb等一些常见的颜色空间互相转换,今天带来几种常见的颜色空间转换IP,主要如下:

82a0c1cd461073d25dbed470ea1e93a5.png

IP库简介

一直想做一个可以供大家学习、使用的开源IP库,类似OpenCores,OC上IP在领域内的IP很少,通用性强一点,所以作为OC的“补充”,做了一个开源IP库,侧重点在领域的IP辅以工程或者仿真验证,一个人能力有限,欢迎大家能够共同构建,有什么问题可以提pr,谢谢~

RGB2HSL/HSL2RGB原理介绍

上面的IP大部分原理网上都有介绍,而且很详细,今天主要介绍RGB-HSL转换的原理。

HSL-色相、饱和度和强度

afb0a9d88922a83a0987285275e9144b.png

色调是从 0 到 360 的颜色范围,以角度量描述纯色。饱和度是从灰色阴影到全彩。颜色的饱和度称为色度。色度值越高,则清晰、明亮。最强的幅度是值,其范围对应于亮度,平衡幅度对应于强度。色调颜色描述纯色,而饱和度值确定纯色范围强度,亮度描述纯色范围。最大饱和度位于中等灰度强度处。100% 饱和度的颜色会产生最纯的颜色,0% 饱和度会产生灰度。0% 亮度的颜色是黑色,100% 亮度的颜色是明亮的颜色。

下面的角度值是色轮上的色调值。

  • 0 度 – 红色

  • 60度-黄色

  • 120 度 – 绿色

  • 180 度 – 青色

  • 240度-蓝色

  • 300 度 – 洋红色

  • 360 度 – 红-洋红色

e6201e43f6893fd27dc8102ef14c84dc.png

RGB 三元组饱和度方程如下所示,其中最大值和最小值是在红色、绿色和蓝色通道之间计算的。它代表颜色的强度和圆锥体的半径。RGB 由等量的白光组成。当最大 RGB 分量减去最小 RGB 分量并除以最大 RGB 分量时,灰度强度被消除。因此,这种新颜色没有白光,饱和并且代表单一波长。

dfd32959d932c49ab4480c2faa16fb60.png

从 RGB 转换为 HSL 以及从 HSL 转换为 RGB 时,通过增加 HSL 颜色空间的饱和度,RGB 颜色变得更强。

RGB 转 HSL

色相、饱和度和强度元素控制更宽的颜色范围以实现图像增强。来自摄像机的视频流是原始 RGB 颜色空间的格式,然后转换为 HSL 颜色空间。在HSL色彩空间中,通过将系数值乘以每个分量来线性更新当前的色调、饱和度和亮度,使图像颜色更明亮、更丰富多彩。将颜色增益应用于 HSL 后,HSL 颜色空间将转换回 RGB 颜色空间。在此过程中,对每个 HSL 元素应用乘法增益(权重)控制后,生成的增强图像颜色看起来自然且更明亮。

b6aa42f4423986e8fdd5b703e77d1a31.png 488416604599c4817f24d6d17da13c91.png

视频颜色处理模块中实现的rgb到HSL颜色空间采用HSL算法,并采用标准Xilinx AXI4流接口设计,因此可以作为模块插入任何图像处理管道中。

177a6193cb5b073becc64e7a0acf5609.png

第一个逻辑计算 RGB 值的最大值和最小值。最大和最小 RGB 值是根据逻辑实现计算的,如下图所示。

57b2f796b96905085aa6f39a408005eb.png

色调是通过确定最大 RGB 通道值的色调分数来计算的。如果当前最大通道颜色为红色,则仅当绿色大于蓝色时,色相分子才会设置为绿色减去蓝色,否则从绿色中减去蓝色,并且色相度数设置为 0 到 85。

如果当前通道最大颜色为绿色,则仅当蓝色大于红色时,色调分子才会设置为蓝色减去红色,否则从蓝色中减去红色,色调度将为86-171 。

类似地,如果当前通道最大颜色为蓝色,则仅当红色大于绿色时,色调分子才会设置为红色减去绿色,否则从红色中减去绿色,色调度将为172-255 。

e867f63c8d8e91bc4ee73aceff756cff.png

色调分母为 RGB 增量。

1a7adf3fa4a2eaee62b99c2fd44ee21f.png

一旦计算出色相分数值,分数值将被添加到色相度数中,这将给出最终的色相值。饱和度值是根据 RGB 最大值和最小值与 RGB 最大值之间的差值计算的,而亮度值是 RGB 最大值。

8d3f043e0699d0cf48906a9c3f8f2ee1.png

该模块具有时钟和复位端口。iRGB端口由具有有效信号的红、绿、蓝颜色分量组成,用于将RGB像素转换为HSL像素。

136578fd52b3a696a9cb6cc30475ae0f.png

RGB通道转换到HSL色彩空间的仿真结果如下图所示。

368e71757d88ea4654380531d0224f91.png

HSL 转 RGB

视频颜色处理模块中实现的HSL-RGB颜色空间采用HSL到RGB转换算法,并采用标准Xilinx AXI4流接口进行设计,因此可以作为模块插入任何图像处理管道中。

d3f77987df1921c9f3cbb1184c39caef.png

HSL 到 RGB 模块将输入 HSL 转换为 RGB 颜色空间。该模块具有时钟和复位端口。iRGB端口由具有有效信号的红、绿、蓝RGB通道组成,用于将RGB像素转换为HSL像素。

9695ae30359f2eb09c71bf3a196c1c65.png feffe03a393cb915392fc6af3e824d63.pngHSL转RGB实现框图

点此FPGA源码

https://github.com/suisuisi/Xilinx_Library/tree/main/HDL/color_space

IP库新增10多个功能IP

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

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

相关文章

基于单片机快递柜的设计与实现

功能介绍 以51单片机作为主控系统;液晶显示当前信息,最多可存储几十个;按下存储按键液晶显示当前快递柜剩余数量;继电器打开,表示用来放物品;正次按下存储按键将取消存快递,继电器关闭快递柜可用…

“探索图像处理的奥秘:使用Python和OpenCV进行图像和视频处理“

1、上传图片移除背景后下载。在线抠图软件_图片去除背景 | remove.bg – remove.bg 2、对下载的图片放大2倍。ClipDrop - Image upscaler 3、对放大后的下载照片进行编辑。 4、使用deepfacelive进行换脸。 1)将第三步的照片复制到指定文件夹。C:\myApp\deepfakeliv…

Proxmox VE 为 Windows 虚拟机添加硬盘遇到的问题

环境:PVE 8.x、Windows 11/Windows Server 2019 👉问题一: 为 windows 虚拟机添加磁盘,重启虚拟机后(在 windows 系统中重启)磁盘未能生效,并显示为橘色。 ❗橘色 意味需要重启VM才能生效&…

如何应对客户报价要求过低的情况?这些方案帮你化解危机!

有个客户在寄样品之前让报价,并且要求承诺价格必须低于15美金,业务员同意了,让客户把样板安排寄到中国,但是收到样品后发现客户的样品在侧面还有一块突出的部分,所以15美金太低了,无论如何也得18美金&#…

【数据挖掘】如何为可视化准备数据

一、说明 想要开始您的下一个数据可视化项目吗?首先与数据清理友好。数据清理是任何数据管道中的重要步骤,可将原始的“脏”数据输入转换为更可靠、相关和简洁的数据输入。诸如Tableau Prep或Alteryx之类的数据准备工具就是为此目的而创建的,…

网络虚拟化相关的Linux接口介绍

Linux拥有丰富的网络虚拟化功能,能被虚拟机,容器还有云网络使用。在这篇文章中,我会给出所有通用网络虚拟化接口的简要介绍。没有代码分析,只有简短的接口介绍和在Linux上的使用操作。这系列接口都可以使用ip link命令实现。 这篇…

微信原生实现一个简易的图片上传功能

一、实现原理 wx.showActionSheet():显示操作菜单,选择是从相册选择还是相机拍摄照片wx.chooseImage():从本地相册选择图片或使用相机拍照。wx.uploadFile():将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求&#xff0c…

项目实战Qt网盘系统

背景:随着时代的发展,业务数据量的剧增及移动办公需求,人们对内存的需求越来越强,传统的存储产品,在容量及携带型日益不能满足人工的工作需求,网盘再此背景下应运而生。网盘是能够提供文件同步,…

回归预测 | MATLAB实现GRU(门控循环单元)多输入单输出(不调用工具箱函数)

回归预测 | MATLAB实现GRU(门控循环单元)多输入单输出(不调用工具箱函数) 文章目录 回归预测 | MATLAB实现GRU(门控循环单元)多输入单输出(不调用工具箱函数)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 GRU神经网络是LSTM神经网络的一种变体,LSTM 神经网 …

Ubuntu 考虑采用新的 “统一默认安装 (unified default install)”

导读Ubuntu安装程序中的 “最小化安装” (Minimal installation) 是该发行版多年来最受欢迎的功能之一。 当用户选择 Ubuntu 的 “最小化安装” 选项时,可以在安装更少的预装应用程序情况下,获得完整、功能齐全的 Ubuntu 系统。 但这个功能可能要被砍掉…

个人博客系统(二)

该博客系统共有八个页面,即注册页面、登录页面、添加文章页面、修改文章页面、我的博客列表页面、主页、查看文章详情页面、个人中心页面。 1 注册页面 该页面如图所示: 首先,要先判断注册的用户名、密码、确认密码以及验证码是否为空,若有一个为空,点击提交,则会提醒 …

文献阅读:MathPrompter: Mathematical Reasoning using Large Language Models

文献阅读:MathPrompter: Mathematical Reasoning using Large Language Models 1. 内容简介2. 方法细节3. 实验内容4. 结论&思考 文献链接:https://arxiv.org/abs/2303.05398 1. 内容简介 这篇文章是今年3月份的时候微软提出的一篇工作&#xff0…

【云原生】k8s安全机制

前言 Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部各个组件通信的中介, 也是外部控制的入口。所以 Kubernetes 的安全机制基本就是围绕保护 API Server 来设计的。 比如 kubectl 如果想向 API…

工欲善其事,必先利其器之—react-native-debugger调试react native应用

调试react应用通常利用chrome的inspector的功能和两个最常用的扩展 1、React Developer Tools (主要用于debug组件结构) 2、Redux DevTools (主要用于debug redux store的数据) 对于react native应用,我们一般就使用react-nativ…

Java项目查询统计表中各状态数量

框架:SpringBoot,Mybatis;数据库:MySQL 表中设计2个状态字段,每个字段有3种状态,统计这6个状态各自的数量 sql查询语句及结果如图 SQL: SELECT SUM(CASE WHEN A0 THEN 1 ELSE 0 END) AS A0…

数据分析的iloc和loc功能

大家好,在处理大型数据集时,使用有效的数据操作和提取技术是必要的。Pandas数据分析库提供了强大的工具,用于处理结构化数据,包括使用iloc和loc函数访问和修改DataFrame元素的能力。在本文中,我们将探讨iloc和loc之间的…

论文笔记--OpenPrompt: An Open-source Framework for Prompt-learning

论文笔记--OpenPrompt: An Open-source Framework for Prompt-learning 1. 文章简介2. 文章概括3 文章重点技术4. 文章亮点5. 原文传送门 1. 文章简介 标题:OpenPrompt: An Open-source Framework for Prompt-learning作者:Ning Ding, Shengding Hu, We…

短视频seo矩阵系统源码开发部署

目录 短视频矩阵源码部署步骤简单易懂,开发者只需按照以下几个步骤进行操作: 代码展示---seo关键词分析 开发要点: 代码展示如下: 开发部署注意事项: 说明:本开发文档适用于短视频seo矩阵系统源码开发…

PostgreSQL考试难不难 ?

当涉及到PostgreSQL考试的详细难度,以下是一些可能涉及的主题和考点,这些主题在不同的考试中可能有所不同: 1.数据库基础知识:数据库的基本概念、关系型数据库模型、表、字段、主键、外键等。 2.SQL语言:对SQL语言的掌…

ACME申请SSL证书

1.开放443端口 firewall-cmd --permanent --add-port443/tcp # 开放443端口 firewall-cmd --reload # 重启防火墙(修改配置后要重启防火墙)2.安装ACME # 安装acme curl https://get.acme.sh | sh -s email你的邮箱地址 # 别名 alias acme.sh~/.acme.sh/acme.sh3.使用ACME申请…