zoukankan      html  css  js  c++  java
  • 基础学习笔记之opencv(20):OpenCV中的颜色空间(ing...)

      YCrCb

        YCrCb在视频压缩和一些数字图像处理中使用得比较多,是一种基于人眼感知的颜色空间。

      在OpenCV中,从RGB空间转换到YCrCb空间的公式如下:

      

      注意从RGB到YcrCb的公式并不是唯一的,这里OpenCV只是采用的是Intel IPP中的公式而已。

      其中的delta的取值为:

       

      这里我们以RGB三通道都为8bit来举例说明,即delta取128。通过上面的公式推导,可以求出Y的取值范围为(0, 255),Cr的取值范围为(0.54768, 255.452315),Cb的取值范围为(0.57548, 255.42452)。因此我们有很大的理由近似认为Y,Cr,Cb的取值范围都近似为(0, 255)。

      从上面的公式可以看出,如果图像是全黑的,即R=G=B=0,则可以算出Y=0,Cr=Cb=128,特别要注意的是此时的Cr,Cb并不为0。

      YCrCb的示意图如下:

      

      其中图一是RGB原图,图二是Y分量使用RGB模型显示出来的图,图三和图四分别是Cb和Cr部分对应的图。

      HSV

      HSV颜色空间是描述比RGB更准确的颜色感知颜色联系,并在计算上更简单。

      从RGB颜色空间转换到HSV颜色空间在OpenCV中是如下实现的:

      

      其中的RGB图像不管是8位的,还是16位的,首先需要将其统统转换成浮点型的,即其值在0~1之间。因此转换后的V和S也属于0~1,H属于0~360度。

      HSV的示意图如下:

      

  • 相关阅读:
    EasyDarwin开源流媒体服务器实现RTSP直播同步输出MP4、RTMP、HLS的方案思路
    OBS桌面视频直播软件/推流工具使用指南
    C++界面库
    . net 源代码调试
    WPF学习之X名称空间详解
    NSIS安装程序制作工具判断系统是否安装.NET
    Qt学习笔记常用容器
    快捷键
    Python中if __name__ == '__main__':作用
    python中__init__.py文件的作用
  • 原文地址:https://www.cnblogs.com/tornadomeet/p/2800701.html
Copyright © 2011-2022 走看看