在计算机中,按照颜色和灰度的多少可以将图像分为四种基本类型。

  1. 二值图像

  2. 灰度图像

  3. 索引图像

  4. 真彩色RGB图像

1. 二值图像

一幅二值图像的二维矩阵仅由0、1两个值构成,“0”代表黑色,“1”代白色。由于每一像素(矩阵中每一元素)取值仅有0、1两种可能,所以计算机中二值图像的数据类型通常为1个二进制位。二值图像通常用于文字、线条图的扫描识别(OCR)和掩膜图像的存储。

2. 灰度图像

灰度图像矩阵元素的取值范围通常为[0,255]。因此其数据类型一般为8位无符号整数的(int8),这就是人们经常提到的256灰度图像。“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。在某些软件中,灰度图像也可以用双精度数据类型(double)表示,像素的值域为[0,1],0代表黑色,1代表白色,0到1之间的小数表示不同的灰度等级。二值图像可以看成是灰度图像的一个特例。

3. 索引图像

索引图像的文件结构比较复杂,除了存放图像的二维矩阵外,还包括一个称之为颜色索引矩阵MAP的二维数组。MAP的大小由存放图像的矩阵元素值域决定,如矩阵元素值域为[0,255],则MAP矩阵的大小为256Ⅹ3,用MAP=[RGB]表示。MAP中每一行的三个元素分别指定该行对应颜色的红、绿、蓝单色值,MAP中每一行对应图像矩阵像素的一个灰度值,如某一像素的灰度值为64,则该像素就与MAP中的第64行建立了映射关系,该像素在屏幕上的实际颜色由第64行的[RGB]组合决定。也就是说,图像在屏幕上显示时,每一像素的颜色由存放在矩阵中该像素的灰度值作为索引通过检索颜色索引矩阵MAP得到。索引图像的数据类型一般为8位无符号整形(int8),相应索引矩阵MAP的大小为256Ⅹ3,因此一般索引图像只能同时显示256种颜色,但通过改变索引矩阵,颜色的类型可以调整。索引图像的数据类型也可采用双精度浮点型(double)。索引图像一般用于存放色彩要求比较简单的图像,如Windows中色彩构成比较简单的壁纸多采用索引图像存放,如果图像的色彩比较复杂,就要用到RGB真彩色图像。

4. 真彩色RGB图像

RGB图像与索引图像一样都可以用来表示彩色图像。与索引图像一样,它分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。但与索引图像不同的是,RGB图像每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中,由于每一像素的颜色需由R、G、B三个分量来表示,M、N分别表示图像的行列数,三个M x N的二维矩阵分别表示各个像素的R、G、B三个颜色分量。RGB图像的数据类型一般为8位无符号整形,通常用于表示和存放真彩色图像,当然也可以存放灰度图像。

灰度图像按行列存储,每列仅含一个通道
 
 
  RGB图像存储方式如下,每列含有三个通道(注意:通道的顺序是 BGR 而不是 RGB)
  

通常情况,内存足够大的话,图像的每一行是连续存放的,也就是在内存上图像的所有数据存放成一行,这中情况在访问时可以提供很大方便。

可以用 isContinuous()函数来判断图像数组是否为连续的。

rgb图像和索引图像的主要区别 

1、RGB彩色模式图像:又叫加色模式图,是屏幕显示的最佳颜色,由红、绿、蓝三种颜色组成,每一种颜色可以有0-255的亮度变化。

2、索引颜色图像:这种颜色下图像像素用一个字节表示它最多包含有256色的色表储存并索引其所用的颜色,它图像质量不高。它的数据信息包括一个数据矩阵和一个双精度色图矩阵,它的数据矩阵中的值直接指定该点的颜色为色图矩阵中的某一种,色图矩阵中,每一行表示一种颜色,每行有三个数据,分别表示该种颜色中红、绿、蓝的比例情况,所有元素值都在[0,1]内。占空间较少。通常用于网络上的图片传输、对图像像素、大小有严格要求的地方。

转载自:http://www.cnblogs.com/theBoyisNone/p/5656172.html

图像四种基本类型简介相关推荐

  1. 卷积神经网络四种卷积类型

    卷积神经网络四种卷积类型 https://www.toutiao.com/a6631333810287936013/ 一般卷积 首先,我们需要就定义卷积层的一些参数达成一致. 卷积核大小(Kernel ...

  2. 计算机类和鼠标类是什么关系,四种鼠标类型的优缺点

    四种鼠标类型的优缺点 鼠标的种类有很多,目前常用的鼠标按照定位原理分为光电鼠标.激光鼠标.蓝光鼠标和蓝影鼠标,可能大部分用户并不了解它们之间的区别,只有少数游戏玩家听说过这些鼠标种类.下面就来和小编一 ...

  3. python中内置的四种数值类型为_浅谈python语言四种数值类型

    Python语言支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下.希望对 ...

  4. ospf的四种网络类型

    原文链接:https://blog.csdn.net/weixin_37945631/article/details/79498334 https://blog.csdn.net/qq_3921960 ...

  5. VMware vSphere四种迁移类型的区别与适应场景

    最近一直刚开始接触VMware vSphere这款虚拟化软件,每天的过程都是上午学新知识不理解,痛苦:下午实验各种出错,折磨:晚上回顾一天所学,五味陈杂,不过相比上午,下午已经好很多了.然后第二天依旧 ...

  6. python中long类型_浅谈python 四种数值类型(int,long,float,complex)

    Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下. 数字数据 ...

  7. python数字类型floatcomplexint_浅谈python 四种数值类型(int,long,float,complex)

    Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下. 数字数据 ...

  8. 四种依恋类型_依恋关系的研究

    说到依恋关系,大家都会想到安全型.焦虑型.回避型,以及这些类型会影响到成年后的人际关系.本文具体罗列一下心理学家研究依恋关系的都做出了怎样的努力. 第一:哈罗做的恒河猴验. 实验情境:把小猴放在一个笼 ...

  9. P2P穿透四种NAT类型

    P2P穿透&四种NAT类型 以下对四种NAT类型分别予以说明: 1.全锥形NAT IP.端口都不受限.只要客户端由内到外打通一个洞之后(NatIP:NatPort -> A:P1),其他 ...

最新文章

  1. Control Compliance Suite,听说过吗?
  2. 关于导入springboot配置文件相关问题
  3. mvc ---- ajax 提交过来的Json格式如何处理(解析)
  4. 信息系统项目管理师 案例1
  5. c语言溢出该怎么算,解决整数运算溢出方法——C语言
  6. Qt: QTimer和QThread
  7. linux怎么远程命令,Linux远程命令
  8. python 经典类和新式类
  9. Virtual Network (1) - How to use it in a guest
  10. R中与数据挖掘相关的package
  11. java如何连接Oracle数据库问题
  12. 从深圳到底特律——我的出国求学之路
  13. 《QQ欢乐斗地主》山寨版
  14. 疯狂HTML5 CSS 3 JavaScript讲义 (李刚) 高清PDF扫描版
  15. iphone显示不了wifi已连接服务器,苹果手机显示已经连接wifi但是不能上网如何解决...
  16. 腾讯发布叮当助手,人工智能语音助手将赋能智能电视
  17. 成人世界黑话鉴定指南
  18. 年薪30万+的HR这样做数据分析!(附关键指标免费模版)
  19. c语言编程图案大全,C语言中图案的编程
  20. VAR.P和VAR.S

热门文章

  1. linux查看目录acl权限,ACL权限详解
  2. 机器人聊天软件c#_用c#快速实现的智能聊天机器人
  3. LCM通信包在Windows 64位环境下的编译
  4. 2021-2027全球与中国不锈钢三脚架旋转门市场现状及未来发展趋势
  5. 微信小程序开店的步骤
  6. 从源码全面解析 ArrayBlockingQueue 的来龙去脉
  7. DOM、DOM4J的区别
  8. [ 数据通信面试篇 ] 数通面试题大集合(详解),看完直怼面试官(五)
  9. 【网工必备知识】IGMP协议,5分钟快速了解!
  10. mysql 插入记录时自动生成8位随机数字