在对图像进行处理时,很多时候对图像的类型有特殊的要求,例如,在对索引图像进行滤波时,必须把它转换为RGB图像,否则光对图像的下标进行滤波,得到的是毫无意义的结果。在MATLAB中,提供了许多图像类型转换的函数,从这些函数的名称就可以看出它们的功能。以下九个函数分别是:
1.dither函数
2.gray2ing函数
3.grayslice函数
4.im2bw函数
5.ind2gray函数
6.ind2rgb函数
7.mat2gray函数
8.rgb2gray函数
9.rgb2ind函数

1.dither函数

用dither函数可实现对图像的抖动。该函数通过颜色抖动(颜色抖动即改变边沿像素的颜色,使像素周围的颜色近似于原始图像的颜色,从而以空间分辨率来换取颜色分辨率)来增强输出图像的颜色分辨率。该函数可以把RGB图像转换成索引图像或把灰度图像转换成二值图像。

%%将RGB图像抖动成索引图像
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
I=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的   
map=pink(512);
X=dither(I, map);   %将RGB图像抖动成索引图像
subplot(1,2,1),
imshow(I);
subplot(1,2,2),
imshow(X, map);

graythresh函数源码 grayslice函数的作用_计算机视觉

%%利用dither函数将灰度图像抖动成二值图像
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
H=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的
I = rgb2gray(H)
BW=dither(I);     %将灰度图像抖动成二值图像
subplot(1,2,1),
imshow(I);
subplot(1,2,2),
imshow(BW);

graythresh函数源码 grayslice函数的作用_图像处理_02

2.gray2ing函数

gray2ind函数用于灰度图像或二值图像向索引图像的转换。该函数的调用方法如下。[X, map]= gray2ind(I, n):表示按照指定的灰度级n把灰度图像I转换成索引图像X,map为gray (n), n的缺省值为64。

%%利用gray2ind函数将灰度图像转换成索引图像
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
H=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的
I = rgb2gray(H);
[X, map]=gray2ind(I,32);      %将灰度图像转换成索引图像
subplot(1,2,1),
imshow(I);
subplot(1,2,2),
imshow(X, map);

graythresh函数源码 grayslice函数的作用_图像处理_03

3.grayslice函数

grayslice函数用于设定阈值将灰度图像转换为索引图像。该函数的调用方法如下。
(1)X=grayslice(I, n):表示将灰度图像I均匀量化为n个等级,然后转换为伪彩色图像X。
(2)X=grayslice(I, v):表示按指定的阈值矢量v(其中每个元素在0和1之间)对图像I进行阈值划分,然后转换成索引图像,I可以是double类型、uint8类型和uint16类型。

%%利用grayslice函数将灰度图像转换为索引图像
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
H=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的
I = rgb2gray(H)
X2=grayslice(I,8);          %将灰度图像转换为索引图像
subplot(1,2,1);
subimage(I);
subplot(1,2,2);
subimage(X2, jet(8));

graythresh函数源码 grayslice函数的作用_图像处理_04

4.im2bw函数

im2bw函数用于设定阈值将灰度、索引、RGB图像转换为二值图像。
BW=im2bw(I, level)
BW=im2bw(X, map, level)
BW=im2bw(RGB, level):level是一个归一化阈值,取值为[0,1]。

%%利用im2bw函数将真彩色转换为二值图像。
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
I=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的
X=im2bw(I,0.5);        %将真彩色转换为二值图像
subplot(1,2,1),
imshow(I);
subplot(1,2,2),
imshow(X);

graythresh函数源码 grayslice函数的作用_索引图像_05

5.ind2gray函数

ind2gray函数用于将索引图像转换为灰度图像。

I=ind2gray(X, map)         %将索引图像转换为灰度图像

6.ind2rgb函数

ind2rgb函数用于索引图像转换为RGB图像。

X=ind2rgb(I, map);         %将索引图像转换为RGB图像

7.mat2gray函数

mat2gray函数用于将数据矩阵转换为灰度图像。
该函数的调用方法如下。
I=mat2gray(A, [max, min]):按指定的取值区间[max, min]将数据矩阵 A 转换为灰度图像I。如不指定区间,自动取最大区间。其中,A为double类型,I为double类型。

8.rgb2gray函数

rgb2gray函数用于将一幅真彩色图像转换成灰度图像。

%%rgb2gray函数将一幅真彩色图像转换成灰度图像。
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
I=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的
X=rgb2gray(I);          %将一幅真彩色图像转换成灰度图像
subplot(1,2,1);
imshow(I);
subplot(1,2,2);
imshow(X);

graythresh函数源码 grayslice函数的作用_索引图像_06

9.rgb2ind函数

rgb2ind函数用于将真彩色图像转换成索引色图像。
该函数的调用方法如下。
(1)[X, map] = rgb2ind(RGB, n):使用最小量化算法把真彩色图像转换为索引图像。其中,n指定map中颜色项数,n最大不能超过65536。
(2)X = rgb2ind(RGB, map):在颜色图中找到与真彩色图像颜色值最接近的颜色作为转换后的索引图像的像素值。map中颜色项数不能超过65536。
(3)[X, map]= rgb2ind(RGB, tol):表示使用均匀量化算法把真彩色图像转换为索引图像,map中最多包含(floor(1/tol)+1)^3种颜色,tol的取值介于0.0和1.0之间。
(4)[…] = rgb2ind(…, dither_option):其中,dither_option用于开启/关闭dither, dither_option可以是’dither’(默认值)或’nodither’。

%%rgb2ind函数将真彩色图像转换成索引色图像。
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
I=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的
[X, MAP]=rgb2ind(I,0.7);       %将真彩色图像转换成索引色图像
subplot(1,2,1);
imshow(I);
subplot(1,2,2);
imshow(X, MAP);

graythresh函数源码 grayslice函数的作用_graythresh函数源码_07