当前位置: 首页 > news >正文

图像四种基本类型简介

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

  • 二值图像
  • 灰度图像
  • 索引图像
  • 真彩色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的亮度变化。 (每个像素占3个字节)

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

 

相关文章:

  • 常见图像格式清晰度对比
  • netsh命令
  • 系统检测到在一个调用中尝试使用指针参数时的无效指针地址
  • 微软带头打了30年,这场屏幕里的大乱斗,终于要结束了
  • 使用socket函数的一些常见错误
  • 数据链路层协议(Ethernet、IEEE802.3、PPP、HDLC)
  • IP协议详解
  • TCP协议
  • 浅谈 Excel 对象模型
  • WINMM
  • ACM-音频编解码器管理器
  • WDM驱动
  • Node.js详解-1
  • Node.js详解-2
  • Node.js详解-3
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • canvas绘制圆角头像
  • CEF与代理
  • ES6系统学习----从Apollo Client看解构赋值
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • java第三方包学习之lombok
  • jdbc就是这么简单
  • Mybatis初体验
  • Netty源码解析1-Buffer
  • React系列之 Redux 架构模式
  • uva 10370 Above Average
  • WePY 在小程序性能调优上做出的探究
  • 测试开发系类之接口自动化测试
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 怎么将电脑中的声音录制成WAV格式
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​一些不规范的GTID使用场景
  • # 达梦数据库知识点
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (2015)JS ES6 必知的十个 特性
  • (八)c52学习之旅-中断实验
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (离散数学)逻辑连接词
  • (十一)c52学习之旅-动态数码管
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)负载均衡,回话保持,cookie
  • .apk文件,IIS不支持下载解决
  • .mysql secret在哪_MySQL如何使用索引
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net mvc 获取url中controller和action
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表