【matlab图像处理笔记1】matlab图像类型的分类与转换
前言
本系列为使用matlab进行图像处理的工具类笔记,将很少涉及相关原理、公式与推导。重点在于函数应用上,此笔记的目的在于便于快速查阅和使用。
Matlab提供的图像类型
matlab提供的图像类型主要包括以下四种:索引图像、灰度图像、RGB图像、二值图像
索引图像
索引图像包括一个数据矩阵X,一个颜色映射矩阵map。
X:可以为uint8、uint16或double类型。
map:总是一个\(m\times 3\) 的double类型矩阵,且元素值位于\([0,1]\)之间。每一列分别表示红(R)、绿(G)、蓝(B),每一行表示一个颜色。
索引图像是从像素值到颜色映射表值的“直接映射”。像素颜色由数据矩阵X作为索引指向矩阵Map进行索引,例如,值1指向矩阵Map中的第一行,值2指向第二行,以此类推。
灰度图像
灰度图像一般由uint8、uint16或double类型的矩阵描述。通常0表示黑色,uint8中的255、uint16中的65535、double中的1表示白色。大于相应类型的值也为白色。
RGB图像
RGB图像又称真彩图像,它利用R、G、B三个分量来表示一个颜色,通过RGB三种基本颜色可以组合出任意颜色。对于一个\(M\times N\)的图像,matlab将储存一个\(M\times N\times 3\) 的数据矩阵。
RGB图像不是用windows的颜色映射表,像素的颜色由保存在像素位置上的红、绿、蓝的灰度值的组合来确定。图形文件格式把RGB图像存储为24位的图像,红、绿、蓝分别占8位,这样可以有1000多万种颜色。
二值图像
与灰度图像类似,不过在数据矩阵中,灰度等级只有两种,即0或1。其中0代表黑色,1代表白色。
图像类型的转换
下面将介绍matlab中上述几种图像类型的转换函数。
常用的类型转换函数:
- rgb2gray
- gray2ind
- rgb2ind
- ind2gray
- ind2rgb
- im2bw(imbinarize)
- grayslice
1.rgb2gray
作用:将RGB图像转化为灰度图像。
用法:
1 | X = rgb2gray(I) |
- I:原RGB图像
- X:转换后的灰度图像
示例:
1 | % 将RGB图像转换为灰度图像 |
2.gray2ind
作用:将灰度图像或二值图像转换为索引图像。
用法:
1 | [X,map] = gray2ind(I,n) |
- I - 转换前的灰度或二值图像数据矩阵
- n - 灰度级数
- X - 转换后得到的索引数据矩阵
- map - 转换后得到的颜色映射矩阵
示例:
1 | % 将灰度图像转化为4个灰度级的索引图像 |
3.rgb2ind
作用:将RGB图像转换为索引图像。
用法:
1 | [X,map] = rgb2ind(RGB,n) |
说明:
- [X,map] = rgb2ind(RGB,n) :使用具有
n
种量化颜色的最小方差量化法并加入抖动,将 RGB 图像转换为索引图像X
,关联颜色图为map
。- [X,map] = rgb2ind(RGB,tol):使用均匀量化法并加入抖动,将 RGB 图像转换为索引图像,容差为
tol
。- X = rgb2ind(RGB,inmap) :使用逆颜色图算法并加入抖动,将 RGB 图像转换为索引图像,指定的颜色图为
inmap
。- _ = rgb2ind(_,dithering):启用或禁用抖动。
关于最小方差量化法、均匀量化法不在这里介绍。
示例:
1 | % 将RGB图像转化为包含4种颜色的索引图像 |
4.ind2gray
作用:将索引图像转换为灰度图像。
用法:
1 | X = ind2gray(I,map) |
示例:
1 | % 将索引图像转化为灰度图像 |
5.ind2rgb
作用:将索引图像转换为RGB图像。
用法:
1 | X = ind2rgb(I,map) |
示例:
1 | % 将索引图像转化为RGB图像 |
6.im2bw(imbinarize)
作用:通过阈值法将图像转化为二值图像。
用法:
1 | BW = im2bw(I,level) % I为灰度图像或RGB图像 |
- level:阈值,取值\([0,1]\)。
注:
在 matlab2018 中建议用 imbinarize 来将图片转换为二值图,其参数必须为灰度图。
在 matlab2016 中,只有 im2bw 函数,其参数可以是灰度图或 rgb 图。
在 matlab2016 中可以用 im2bw 直接将 rgb 图像转换为二值图;
在 matlab2018 中若要使用imbinarize 图片二值化,需要先将 rgb 图片转换为灰度图(用 rgb2gray() 函数),再用 imbinarize 转换为二值图。
示例:
1 | % 将RGB图像转化为二值图像 |
7.grayslice
作用:通过多级阈值法将灰度图像转换为索引图像。
用法:
1 | X = grayslice(I,n) |
- n:将图像I的亮度均匀化为n个等级,默认64
- v:按指定阈值向量v对图像I的亮度进行划分
示例:
1 | % 将灰度图像转化为8级索引图像 |