浅谈MATLAB图像类型种类及相互转换

      图像处理中,我们会接触到各种图像类型,如索引图像、灰度图像、二值图像等,对各种图像类型加以区分以及掌握它们相互转换是图像处理的基础。下面我就大概概括下MATLAB基本的图像类型已经它们的相互转换。

先简单对这些图像类型再介绍下:

二值图像:是一个数据矩阵,每个像素只取两个离散值中的一个;一个二值图像时以0(黑)和1的逻辑矩阵存储的。

灰度图像:为单一的数据矩阵,矩阵中的每个元素分别代表图像中的像素,且是在一定范围内的颜色灰度值。矩阵中的元素可以是双精度的浮点类型、8位或16位无符号的整数类型。

索引图像:包括一个数据矩阵X和一个色图阵MAP。X可以是无符号8位整型、无符号16位整型或双精度浮点型数据;MAP是一个包含三列、若干行的数据阵列,每一个元素的值均为[0,1]之间的双精度浮点型数据。MAP矩阵的每一行分别代表红,绿和蓝色。在MATLAB中,索引图像时从像素值到颜色映射值,1指向矩阵MAP中的第一行,依次类推。

RGB图像(真彩图像):为数据矩阵,其中元素定义了图像中每一个像素的红、绿、蓝颜色值。RGB图像存储为24位的图像,红、绿、蓝分别占8位,可以有1000多万种颜色。

大致介绍了这四种图像类型后,下面给出它们之间相互转换的描绘图:



 

关于MATLAB图像类型的转换,工具箱中提供了许多图像类型转换函数,下面逐一说明:

注:下面用RGB代替真彩图像,I代替灰度图像,BW代替二值图像,(X,MAP)代替索引图像,A为数据矩阵

1)真彩色图像——>索引图像或者灰度图像——>二值图像

原理:通过颜色抖动增强图像的颜色分辨率

X=dither(RGB,map)      map为指定色图,不能超过65536种颜色

BW=dither(I)

2)灰度图像或二值图像——>索引图像

[X,MAP]=gray2ind(I,n)      n为指定的灰度级数,缺省值为64

[X,MAP]=gray2ind(BW,n)

3)灰度图像——>索引图像

原理:设定阈值

X=grayslice(I,n)

X=grayslice(I,v)     v为指定的阈值向量(每一个元素都在0和1之间)

4)灰度、真彩、索引图像——>二值图像

原理:设定亮度阈值

BW=im2bw(I,level)           level是归一化的阈值,取值在[0, 1],可由graythresh(I)计算得到

BW=im2bw(X,MAP,level)

BW=im2bw(RGB,level)

5)索引图像——>灰度图像

原理:从图像中删除色彩和位置信息 ,只保留亮度

I=ind2gray(X,MAP)

6)索引图像——>真彩图像

RGB=ind2rgb(X,MAP)  

输入图像X可是uint8,、uint16或double类型,输出图像时double类型的m*n*3的矩阵

7)数据矩阵——>灰度图像

I=mat2gray(A,[amin,amax])   [amin,amax]是指定的取值区间,amin是灰度最暗的值······

输入和输出图像都为double类型

8)真彩图像——>灰度图像or彩色色图——>灰度色图

I=rgb2gray(RGB)

newmap=rgb2gray(map)

当输入的是色图,则输入和输出的都是double类型;不然,则三种类型都可。

9)真彩图像——>索引图像

[X,MAP]=rgb2ind(RGB,n)   n必须不大于65536,MAP至多n种颜色

X=rgb2ind(RGB) 表示把真彩图像的色图映射成索引图像最近似匹配的色图;(map,1)的大小不大于65536

另外提及:把真彩图像转换为索引图像包括三种方法:均衡量化、最小值量化、色图映射

猜你喜欢

转载自459838660.iteye.com/blog/2206133