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

这篇具有很好参考价值的文章主要介绍了IP库新增多种颜色转换空间IP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

IP库简介

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

RGB2HSL/HSL2RGB原理介绍

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

HSL-色相、饱和度和强度

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

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

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

  • 0 度 – 红色

  • 60度-黄色

  • 120 度 – 绿色

  • 180 度 – 青色

  • 240度-蓝色

  • 300 度 – 洋红色

  • 360 度 – 红-洋红色

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

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

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

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

RGB 转 HSL

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

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

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

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

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

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

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

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

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

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

色调分母为 RGB 增量。

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

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

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

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

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

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

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

HSL 转 RGB

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

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络

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

IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络IP库新增多种颜色转换空间IP,开源FPGA和它的工具们,tcp/ip,网络协议,网络HSL转RGB实现框图

点此FPGA源码

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

IP库新增10多个功能IP文章来源地址https://www.toymoban.com/news/detail-671390.html

到了这里,关于IP库新增多种颜色转换空间IP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • opencv(7): 颜色空间的转换

    前面说过,图像的像素值是由 颜色空间、图像深度 决定的。 opencv常用的颜色空间转换有两个。 作用 :cv2.cvtColor()方法用于 将图像从一种颜色空间转换为另一种颜色空间 。 OpenCV提供了150多种color-space转换方法。我们将在下面使用一些颜色空间转换代码。 在从RGB颜色空间转换

    2024年01月20日
    浏览(30)
  • OpenCV-9颜色空间的转换

    颜色转换API:cvtColor(img,colorsapce) cvt含义为转换 convesion(转换) 下面为示例代码: 注意点: 1.Opencv的默认读取行为BGR,因此图片颜色空间转换都是从BGR开始转换 2.颜色空间中的参数,例如cv2.COLOR_BGR2RGBA实际上是数值。类似于映射。 例如打印 cv2.COLOR_BGR2HSV 3.callback回调函数中

    2024年02月03日
    浏览(30)
  • 【OpenCV • c++】颜色数据结构与颜色空间转换

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪

    2024年02月11日
    浏览(31)
  • OpenCV 入门教程:颜色空间转换

    2023年07月12日
    浏览(35)
  • Python-OpenCV中的图像处理-颜色空间转换

    在 OpenCV 中有超过 150 中进行颜色空间转换的方法。但是你以后就会 发现我们经常用到的也就两种: BGR G r a y 和 B G R Gray 和 BGR G r a y 和 BGR HSV。 注意:在 OpenCV 的 HSV 格式中, H(色彩/色度)的取值范围是 [0, 179],S(饱和度)的取值范围 [0, 255], V(亮度)的取值范围 [0,

    2024年02月13日
    浏览(23)
  • C++ opencv HSV颜色空间转换+RGB三通道提升亮度

    #include iostream #include iomanip #includeopencv2//opencv.hpp using namespace std; using namespace cv; //函数adjustBrightness用于图片增加亮度 void adjustBrightness(cv::Mat image, int targetBrightness) {     // 获取图像的通道数     int channels = image.channels();     // 计算调整亮度的因子     float factor = 1.0f;     if

    2024年03月09日
    浏览(41)
  • Lnton羚通云算力平台OpenCV Python颜色空间转换与抠图教程

    在 OpenCV Python 中,颜色空间转换和图像抠图是常见的图像处理任务。下面我将为你介绍如何进行颜色空间转换和图像抠图。 颜色空间转换: 在 OpenCV Python 中,可以使用  cv2.cvtColor()  函数将图像从一个颜色空间转换为另一个颜色空间。常用的颜色空间转换包括 RGB、BGR、灰度

    2024年02月11日
    浏览(29)
  • 【OpenCV常用函数:颜色空间转换、阈值化】cv2.cvtColor()+cv2.threshold()

    对图像进行颜色空间的转换 对图像进行阈值化/二值化

    2024年02月13日
    浏览(37)
  • OpenCV(图像颜色空间变换)

    目录 1、分类 1.1 RGB颜色模型  1.2 HSV颜色模型 1.3 GRAY颜色模型 2、图像数据类型间的相互转换  3 、颜色转换函数 RGBHSVGRAY颜色模型。 1.1 RGB颜色模型  1.2 HSV颜色模型 1.3 GRAY颜色模型 第四个参数使用例子:有一图像通道数为5,只需要用到前3个通道,就可以设置通道数为3  使

    2024年02月12日
    浏览(39)
  • 四、Unity中颜色空间

    通过点击菜单Edit-Project Settings-Player页签-Other Settings下的Rendering部分进行修改,参数Color Space可以选择Gamma或Linear。 当选择Gamma Space时,Unity不会做任何处理。 当选择Linear Space时,引擎的渲染流程在线性空间计算,理想情况下项目使用线性空间的贴图颜色,不需要勾选sRGB,如果

    2024年02月14日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包