灰度、灰度值、灰度图像


灰度:灰度使用黑色调来表示物体,即用黑色为基准色,不同饱和度的黑色来显示图像。每个灰度对象都具有从0%(白色)到100%(黑色)的亮度值。使用黑白或灰度扫描仪生成的图像通常以灰度显示。自然界中的大部分物体平均灰度为18%。需要注意这个百分比是以纯黑为基准的百分比,百分比越高颜色越偏黑,百分比越低颜色越偏白。灰度也可认为是亮度,简单的说就是色彩的深浅程度。

灰度值:指黑白图像中点的颜色深浅(浓淡)程度,范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像。

灰度图像:灰度图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗黑色到最亮的白色的灰度。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑白两种颜色(0和255),灰度图像在黑色与白色之间还有许多级的颜色深度(0~255)。一幅完整的图像,是由红色、绿色和蓝色三个通道组成的,红色、绿色和蓝色三个通道的缩览图都是以灰度图显示的,用不同的灰度色阶来表示红色、绿色和蓝色在图像中的比重。

数字图像


数字图像本质上是一个多维矩阵,下面以一个400*300的RGB色彩空间图片为例:

此图本质是一个400 * 300 * 3的一个矩阵:PI[400, 300, 3] ,这里400、300和3分别表示列、行和分量,意思是此图有400列,300行,以及在色彩上有三个分量。这三个分量分别是:

  

每个分量单独拿出来都是一个400 * 300 * 1的矩阵,而且如你所见,它们并不是彩色的,而是一幅灰度图像。对于图像每个分量来说,它只是灰度,谈论色彩没有意义,它是“黑白”的。在图像显示时,我们把图像的R分量放进红色通道里,B分量放进蓝色通道里,G分量放进绿色通道里。经过一系列处理,显示在屏幕上的就是我们所看到的彩色图像了。

回到最上面那幅图,先看彩色部分,例如两人坐的椅子是偏红色的。再看下面的RGB三分量图:R分量的图上,椅子对应的部分比较浅(灰度值高),而在G分量图和了B分量图上则很深(灰度值低)。我们随便在椅子上取一个样点进行验证,其灰度值分别是(R:179, G:45, B:9),所以在显示的时候,红色通道里灰度值大,绿色通道和蓝色通道里的灰度值小,显示出来的就是红色。再看乔帮主的牛仔裤,蓝色通道的灰度值大,绿色其次,红色最少,所以显示为蓝青色。

如果我们交换一下分量放置的顺序,把G分量放进红色通道里,把R分量放进绿色通道里,B分量放进蓝色通道里,那么此时绿通道中的灰度值最大,红色通道和蓝色通道中的灰度值都较低,于是就变成了下面这样:

通道


图像的颜色模式决定了图像颜色通道的数目: 

  • 位图模式的图像有1个通道,通道中有黑色和白色2个色阶; 

  • 灰度模式的图像有1个通道,通道中表现的是从黑色到白色的256个色阶的变化;

  • RGB模式的图像有4个通道,1个复合通道(RGB通道),3个分别代表红色、绿色和蓝色的通道;

  • CMYK模式的图像有5个通道,一个复合通道(CMYK通道),4个分别代表青色、洋红、黄色和黑色的通道;

  • LAB模式的图像有4个通道,1个复合通道(LAB通道),1个明度分量通道,两个色度分量通道。

• 通道的作用

• 存储图像的色彩资料
  • 存储和创建选区
  • 抠图

[ps] 灰度和通道基础知识的更多相关文章

  1. [网摘][医学影像] DICOM 和 NIFTI 基础知识与区别

    查找DICOM基础知识时,看到这篇文章里面写了一些关于使用深度学习进行医疗影像分析:文件格式篇.下文摘自:https://www.jiqizhixin.com/articles/2017-07-31 ...

  2. (转)Linux基础知识学习

    Linux基础知识学习 原文:http://blog.csdn.net/ye_wei_yang/article/details/52777499 一.Linux的磁盘分区及目录 Linux的配置是通过 ...

  3. AI-图像基础知识-01

        目前人工智能Artificial Intelligence主要分为两大分支: 计算机视常见:Computer Vision,简称CV   CV主要是研究如何让机器看懂世界的一种技术,通过各种光 ...

  4. 【STM32H7教程】第57章 STM32H7硬件JPEG编解码基础知识和HAL库API

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第57章       STM32H7硬件JPEG编解码基础知识 ...

  5. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  6. TCP/IP协议(二)tcp/ip基础知识

    今天凌晨时候看书,突然想到一个问题:怎样做到持续学习?然后得出这样一个结论:放弃不必要的社交,控制欲望,克服懒惰... 然后又有了新的问题:学习效率时高时低,状态不好怎么解决?这也是我最近在思考的问题 ...

  7. TCP/IP协议(一)网络基础知识

    参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...

  8. Linux基础知识整理

    一.基础知识 1.Linux简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件 ...

  9. HTML基础知识

    一个完美的web前端攻城狮,所具备的专业素养有:HTML5.XHTML.CSS3.JavaScript.JQuery.PS.PHP等.所以说,我要学的东西还有很多... 没别得,我也是一个H5的初学者 ...

随机推荐

  1. 深入理解 Neutron -- OpenStack 网络实现(1):GRE 模式

    问题导读1.什么是VETH.qvb.qvo?2.qbr的存在的作用是什么?3.router服务的作用是什么? 如果不具有Linux网络基础,比如防火墙如何过滤ip.端口或则对openstack ovs ...

  2. 【ORACLE 】查询被锁住的对象,并结束其会话

    使用Oracle时,发现有表被锁,又不知道是谁(或者哪个程序)锁的,怎么办 ? 两步走: 1.查找出被锁对象的会话ID和序列号 执行如下SQL: -- 查询出被锁对象,并提供 kill 脚本 SELE ...

  3. JavaScript 中的 Map

    很多编程语言中都有类似Map这种 键-值对 的数据结构. 可惜,JavaScript没有. 幸运的是,可以自己构建一个Map对象. 对象的定义 <script type="text/j ...

  4. jQuery().end()的内部实现及源码分析

    jQuery().end()的作用是返回当前jQuery对象的上一个状态. 1.end()源码: // 所有通过pushStack方法获得的jQuery对象都可以通过end方法返回之前的状态   // ...

  5. Android 逆向工具

    逆向分析工具 https://github.com/skylot/jadx/ https://github.com/google/android-classyshark https://github. ...

  6. Elasticsearch学习之深入聚合分析五---案例实战

    1. fielddata核心原理 fielddata加载到内存的过程是lazy加载的,对一个analzyed field执行聚合时,才会加载,而且是field-level加载的,一个index的一个f ...

  7. openstack nova 用户管理

    用户管理      创建管理员用户      用法:      nova-manage user admin name [access] [secret]      其中access 和secret可 ...

  8. .sh 的运行

    cat *.sh 看一下你的那个sh文件 看第一行是#!/bin/bash 还果 #!/bin/sh 如果是/bin/bash就执行 bash your.sh 如果是/bin/sh 就执行 sh yo ...

  9. 【BZOJ1478】Sgu282 Isomorphism Pólya定理神题

    [BZOJ1478]Sgu282 Isomorphism 题意:用$m$种颜色去染一张$n$个点的完全图,如果一个图可以通过节点重新标号变成另外一个图,则称这两个图是相同的.问不同的染色方案数.答案对 ...

  10. python requests模块中返回时间elapsed解析

    一.问题: Python 中requests库在发送http请求时相当方便好用,但在使用时一直受一个问题困扰,怎么才能查看请求时长呢? 自己写时间函数再相减?NO,这个方法肯定不行. 二.解决: 好吧 ...