文章结构

  • 1. 数字图像
  • 2. 彩色空间
    • 2.1 RGB
    • 2.2 CMY和CMYK
    • 2.3 HSI
    • 2.4 YIQ
    • 2.5 YUV
    • 2.6 YCbCr
  • 3. 伪彩色图像处理
  • 4. 全彩色图像处理
  • 5. 彩色变换
  • 6. 彩色图像平滑和尖锐化

图像处理系列笔记: https://blog.csdn.net/qq_33208851/article/details/95335809


像素:数字图像由二维的元素组成,每一个元素具有一个特定的位置(x,y)和幅值f(x,y),这些元素就称为像素。它是数字图像的基本单位。


1. 数字图像

  • 单色(灰度)图像:每个像素的亮度用一个数值来表示,取值范围0-255,0表示黑、255表示白,其他值表示处于黑白之间的灰度
  • 彩色图像:用红、绿、蓝三元组的二维矩阵来表示。三元组的每个数值也是在0-255之间,0表示相应的基色在该像素中没有,而255表示相应的基色在该像素中取得最大值

2. 彩色空间

2.1 RGB

RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。红R、绿G、蓝B三种颜色的强度值均是0-255,则三种光混合在每个像素可以组成16777216(256256256)种不同的颜色。256级的RGB色彩也被简称为1600万色或千万色,或称为24位色(2的24次方)。
RGB格式
对一种颜色进行编码的方法统称为“颜色空间”或“色域”。用最简单的话说,世界上任何一种颜色的“颜色空间”都可定义成一个固定的数字或变量。RGB(红、绿、蓝)只是众多颜色空间的一种。采用这种编码方法,每种颜色都可用三个变量来表示-红色绿色以及蓝色的强度。记录及显示彩色图像时,RGB是最常见的一种方案。但是,它缺乏与早期黑白显示系统的良好兼容性。因此,许多电子电器厂商普遍采用的做法是,将RGB转换成YUV颜色空间,以维持兼容,再根据需要换回RGB格式,以便在电脑显示器上显示彩色图形。

  • 网页格式
    网页颜色由16进制代码表示,一般格式为#DEFABC (字母范围从A-F,数字从0-9 );如黑色,在网页代码中便是:#000000(在css编写中可简写为#000)。当颜色代码为#AABB11时,可以简写为#AB1表示,如#135与#113355表示同样的颜色。
    RGB1、RGB4、RGB8都是调色板类型的RGB格式,在描述这些媒体类型的格式细节时,通常会在BITMAPINFOHEADER数据结构后面跟着一个调色板(定义一系列颜色)。它们的图像数据并不是真正的颜色值,而是当前像素颜色值在调色板中的索引。以RGB1(2色位图)为例,比如它的调色板中定义的两种颜色值依次为0x000000(黑色)和0xFFFFFF(白色)…(每个像素用1位表示)表示对应各像素的颜色为:黑黑白白黑白黑白黑白白白…。
  • RGB555
    RGB555是另一种16位的RGB格式,RGB分量都用5位表示(剩下的1位不用)。使用一个字读出一个像素后,这个字的各个位意义如下:
    高字节 低字节
    X R R R R R G G G G G B B B B B (X表示不用,可以忽略)
  • RGB565
    RGB565使用16位表示一个像素,这16位中的5位用于R,6位用于G,5位用于B。程序中通常使用一个字(WORD,一个字等于两个字节,一个字节等于八位)来操作一个像素。当读出一个像素后,这个字的各个位意义如下:
    高字节 低字节
    R R R R R G G G G G G B B B B B
  • RGB24
    RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:
    BGR BGR BGR…
    通常可以使用RGBTRIPLE数据结构来操作一个像素,它的定义为:
    typedef struct tagRGBTRIPLE {
    BYTE rgbtBlue; // 蓝色分量
    BYTE rgbtGreen; // 绿色分量
    BYTE rgbtRed; // 红色分量
    } RGBTRIPLE;
  • RGB32
    RGB32使用32位来表示一个像素,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。(ARGB32就是带Alpha通道的RGB24。)注意在内存中RGB各分量的排列顺序为:
    BGRA BGRA BGRA…
    通常可以使用RGBQUAD数据结构来操作一个像素,它的定义为:
    typedef struct tagRGBQUAD {
    BYTE rgbBlue; // 蓝色分量
    BYTE rgbGreen; // 绿色分量
    BYTE rgbRed; // 红色分量
    BYTE rgbReserved; // 保留字节(用作Alpha通道或忽略)
    } RGBQUAD

2.2 CMY和CMYK

CMY是青(Cyan)、洋红或品红(Magenta)和黄(Yellow)三种颜色的简写,是相减混色模式,用这种方法产生的颜色之所以称为相减色,乃是因为它减少了为视觉系统识别颜色所需要的反射光。
和RGB的区别
RGB是红(Red)、绿(Green)和蓝(Blue)三种颜色的简写,是相加混色模式,每种颜色分量越多,得到的颜色越亮,每种颜色的取值范围为0~255;RGB常用于计算机显示方面。
由于彩色墨水和颜料的化学特性,用三种基本色得到的黑色不是纯黑色,因此在印刷术中,常常加一种真正的黑色(black ink),这种模型称为CMYK模型,广泛应用于印刷术。每种颜色分量的取值范围为0~100CMY常用于纸张彩色打印方面。
和RGB的转换
转换公式为:

C=255-R
M=255-G
Y=255-B

该方程证明了从一个涂满纯净青色颜料的表面反射回的光不包含红色(纯净的青色255,则R=0)。同样,纯净的品红色不反射绿色,纯净的黄色不反射蓝色。前述的方程同样表明,从255减去单个CMY值,可以得到RGB值。

2.3 HSI

HSI是指一个数字图像的模型,它反映了人的视觉系统感知彩色的方式,以色调、饱和度和亮度三种基本特征量来感知颜色。
HSI模型的建立基于两个重要的事实:
第一个,分量与图像的彩色信息无关;
第二个,H和S分量与人感受颜色的方式是紧密相联的。这些特点使得HSI模型非常适合彩色特性检测与分析。
颜色模型

色调H(Hue):与光波的波长有关,它表示人的感官对不同颜色的感受,如红色、绿色、蓝色等,它也可表示一定范围的颜色,如暖色、冷色等。
饱和度S(Saturation):表示颜色的纯度,纯光谱色是完全饱和的,加入白光会稀释饱和度。饱和度越大,颜色看起来就会越鲜艳,反之亦然。
亮度I(Intensity):对应成像亮度和图像灰度,是颜色的明亮程度。
若将RGB单位立方体沿主对角线进行投影,可得到六边形,这样,原来沿主对角线的灰色都投影到中心白色点,而红色点(1,0,0)则位于右边的角上,绿色点(0,1,0)位于左上角,蓝色点(0,0,1)则位于左下角。
HSI颜色模型的双六棱锥表示,I是强度轴,色调H的角度范围为[0,2π],其中,纯红色的角度为0,纯绿色的角度为2π/3,纯蓝色的角度为4π/3。饱和度S是颜色空间任一点距I轴的距离。当然,若用圆表示RGB模型的投影,则HSI色度空间为双圆锥3D表示。
注意: 当强度I=0时,色调H、饱和度S无定义;当S=0时,色调H无定义
和RGB的转换

2.4 YIQ

Y是亮度信号(Luminance),即亮度(Brightness),I代表In-phase,色彩从橙色到青色,Q代表Quadrature-phase,色彩从紫色到黄绿色。
较其他颜色空间,YIQ颜色空间具有能将图像中的亮度分量分离提取出来的优点,并且YIQ颜色空间与RGB颜色空间之间是线性变换的关系,计算量小,聚类特性也比较好,可以适应光照强度不断变化的场合,因此能够有效地用于彩色图像处理。可用于在自然条件下采集到的复杂背景下的运动目标的识别。
和RGB的转换

2.5 YUV

YUV,是一种颜色编码方法。常使用在各个视频处理组件中。 YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。
YUV是编译true-color颜色空间(color space)的种类,Y’UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance、Luma),“U”和“V”则是色度、饱和度(Chrominance、Chroma)。
和RGB的转换

2.6 YCbCr

YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。人的肉眼对视频的Y分量更敏感,因此在通过对色度分量进行子采样来减少色度分量后,肉眼将察觉不到的图像质量的变化。主要的子采样格式有 YCbCr 4:2:0、YCbCr 4:2:2 和 YCbCr 4:4:4。
4:2:0表示每4个像素有4个亮度分量,2个色度分量 (YYYYCbCr),仅采样奇数扫描线,是便携式视频设备(MPEG-4)以及电视会议(H.263)最常用格式;4:2:2表示每4个像素有4个亮度分量,4个色度分量(YYYYCbCrCbCr),是DVD、数字电视、HDTV 以及其它消费类视频设备的最常用格式;4:4:4表示全像素点阵(YYYYCbCrCbCrCbCrCbCr),用于高质量视频应用、演播室以及专业视频产品。
和RGB的转换

3. 伪彩色图像处理

分类:单色图像(灰色黑白)、真彩色图像、伪彩色图像
伪彩色图像处理是根据一定的准则对灰度值赋以彩色的处理
为什么需要伪彩色图像处理?人类可以辨别上千种颜色和强度但是只能辨别二十几种灰度
怎么进行伪彩色图像处理?

  1. 强度分层技术
  • 把一幅图像描述为三维函数(x,y,f(x,y))
  • 分层技术:放置平行于(x,y)坐标面的平面
  • 每一个平面在相交区域切割函数图像

    定义:令【0,L-1】表示灰度级,使l0代表黑色(f(x,y)=0),lL-1代表白色(f(x,y)=L-1)。假设垂直于强度轴的的P个平面定义为量级l1,l2,l3,…,lp.0<P<L-1,P个平面将灰度级分为P+1个间隔,V1,V2,…,VP+1,则灰度级到彩色的赋值关系:
    f(x,y)=ck,f(x,y)∈Vk
    ck是与强度间隔Vk第K级强度有关的颜色
    Vk是由在l=k-1和l=k分隔平面定义的

    实例:


  1. 灰度级到彩色的转换
  • 对任何输入像素的灰度级执行3个独立变换
  • 3个变换结果分别送入彩色监视器的红、绿、蓝三个通道
  • 产生一副合成图像

4. 全彩色图像处理

全彩色图像处理分为两大类:

  • 分别处理每一分量图像,然后合成彩色图像
  • 直接对彩色像素处理:3个颜色分量表示像素向量7

    其中c代表RGB彩色空间中的任意向量
    对大小为MxN的图像:

5. 彩色变换

彩色变换函数:

f(x,y)为彩色输入图像
g(x,y)是变换后或处理过的彩色输出图像
T是在空间邻域(x,y)上对f的操作

补色
作用:增强嵌在彩色图像暗区的细节
如下入所示,与一种色调直接相对立的另一种色调称为补色


6. 彩色图像平滑和尖锐化



彩色分割

图像处理系列笔记: https://blog.csdn.net/qq_33208851/article/details/95335809

图像处理(1)--数字图像及彩色空间相关推荐

  1. Python实现数字图像处理之5种彩色空间转换(单图+多图+视频)

    本文主要运用用Python代码实现了5种彩色空间之间的转换! 具体而言,包括: 1)RGB → CMY: 2)  CMY → RGB: 3)  RGB → HSI: 4)  HSI → RGB: 5) ...

  2. 彩色图像处理 彩色空间转换及代码实现

    一.彩色图像基础 为什么要研究彩色图像处理? 符合人类视觉特点:人类可以辨别几千种颜色色调和亮度:只能辨别几十种灰度层次. 有用的描绘子:简化目标物的区分:目标识别,根据目标的颜色特征. 彩色图像处理 ...

  3. 图像处理-3 彩色空间互转

    Datawhale 计算机视觉基础-图像处理(上)-Task03 彩色空间互转 3.1 简介 图像彩色空间互转在图像处理中应用非常广泛,而且很多算法只对灰度图有效:另外,相比RGB,其他颜色空间(比如 ...

  4. 第6章 Python 数字图像处理(DIP) - 彩色图像处理3 -色彩变换、彩色校正、彩色图像平滑和锐化、HSI彩色空间中的分割、RGB空间中的分割、彩色边缘检测

    这里写目录标题 色彩变换 彩色图像平滑和锐化 使用彩色分割图像 HSI 彩色空间中的分割 RGB空间中的分割 彩色边缘检测 彩色图像中的噪声 色彩变换 # 图像颜色分量的显示 from PIL imp ...

  5. 计算机视觉基础——图像处理(彩色空间互转)cpp+python

    3.1 简介 图像彩色空间互转在图像处理中应用非常广泛,而且很多算法只对灰度图有效:另外,相比RGB,其他颜色空间(比如HSV.HSI)更具可分离性和可操作性,所以很多图像算法需要将图像从RGB转为其 ...

  6. 数字图像处理(四):彩色空间及转换公式

    一.RGB空间 这是我们最熟悉的色彩空间. 根据色度学原理,自然界的各种颜色光都可以由红.绿.蓝三种颜色的光按不同比例混合而成.因此将红绿蓝三种颜色成为三基色. 几乎所有的彩色成像设备和彩色显示设备都 ...

  7. 数字图像处理——第六章 彩色图像处理

    数字图像处理--第六章 彩色图像处理 文章目录 数字图像处理--第六章 彩色图像处理 1 彩色模型 1.1 RGB彩色模型 1.2 CMY 和CMYK彩色模型 1.3 HSI彩色模型 2 伪彩色图像处 ...

  8. 数字图像处理第六章 ——彩色图像处理(下)

    数字图像处理第六章 数字图像处理---彩色图像处理 (五) 彩色图像的空间滤波 5.1 彩色图像的平滑处理 5.2 彩色图像的锐化处理 (六) 直接在 RGB 矢量空间中处理 6.1 使用梯度的彩色边 ...

  9. 彩色空间及cvtColor解析

    首先,我们要了解:什么是彩色空间呢? 许多人都知道在绘画时可以使用红色.黄色和蓝色这三种原色生成不同的颜色,这些颜色就定义了一个色彩空间.我们将品红色的量定义为X 坐标轴.青色的量定义为Y坐标轴.黄色 ...

最新文章

  1. debian10 简单的CA使用
  2. 2、ESXI安装出错
  3. css行高line-height的用法
  4. 08、MySQL—字符串型
  5. 计算机视觉与深度学习 | 基于控制点的投影畸变图像配准(matlab源码)
  6. allegro怎么设置孔的属性_两种在Allegro中增加过孔的方法
  7. Python基础之:Python中的异常和错误
  8. java jlist 图标_java – 将图像添加到JList项目
  9. ReentrantLock 分析
  10. java arraylist 初始化_Java面试整理-基础篇8.集合1
  11. fzu 2077 The tallest tree
  12. 将byte数组转换成十进制字符串输出_outputStream与InputStream使用只能传输字节byte...
  13. 软件测试方法可以分为几种?
  14. afg低功耗状态黑苹果_拔草1L小主机 Dell9020m  + 黑苹果折腾记录
  15. [facebook-wda]iOS App元素定位
  16. 爬虫实战——爬取大麦网
  17. 狂妄之人怎么用计算机弹,天谕手游狂妄之人乐谱代码分享
  18. ubuntu 安装浏览器flash插件
  19. 洛谷P1379八数码难题
  20. Windows MVSC编译器实现Xtended Flow Guard(XFG)保护机制的原理分析

热门文章

  1. 解决vue3+vite项目中引入mockjs失败的问题--无法找到模块“mockjs”的声明文件
  2. MybatisPlus操作
  3. mongodb自动宕机
  4. 将本地mysql数据库拷贝到云服务器
  5. 解决cannot import name ‘XXX‘ from partially initialized module ‘XXX‘ (most likely due to a circular...
  6. adams2015怎么把工具栏打开_U盘文件被隐藏怎么恢复?找到原因对症下药
  7. Android ActivityManager常用方法,kotlin协程的理解
  8. 程序员的编辑器----VIM
  9. navicat连接oracle 87,[Navicat] 连接Oracle报错_Cannot load OCI DLL 87
  10. 用python的turtle库画皮卡丘