图像类型转换--RGB图像、索引图像、灰度图像、二值图像和数据矩阵(2)

标签:
matlab图像类型转换 |
分类: matlab图像处理学习 |
索引图像转换成灰度图像
利用ind2gray()可以将索引图像转换成灰度图像。
I=ind2gray(X,map);将具有颜色映射表map的索引图转换成灰度图像,去除了索引图像的颜色、饱和度信息,保留了图像的亮度信息。输入图像的类型可以是double、uint8,但输出为double。
程序举例:
close
all;clear all;clc;
[X,map]=imread('trees.tif');
I=ind2gray(X,map);
figure,imshow(X,map);
figure,imshow(I);
figure,
subplot(121),imshow(X,map);%这样是显示不出索引图像的颜色的
subplot(122),imshow(I);
http://s7/mw690/002Pv8mHgy6IP9w7d4yb6&690
说明:上述图片前者都是原来的彩色的索引映射图,后者都为灰度变换后的索引图,知识因为下方的用了subplot的表示方法,导致显示不出原有的彩色。
灰度图像转换为索引图像
利用gray2ind()函数grayslice()函数可以实现灰度图像到索引图像的转化。
在Matlab中,灰度图像是一个二维矩阵,而索引图像还包括一个M*3的颜色映射表,所以将灰度图像变换成索引图像,必须生成对应的颜色映射表。
- [X,map]=gray2ind(I,n);该函数是将灰度图像I转换为索引图像,I 为原灰度图像,n 为灰度等级,默认为64,map中对应的颜色值为颜色图gray(n)中的颜色值。
- [X,map]=gray2ind(BW,n);该函数是将二值图像BW转换为灰度图像,BW只二值图像,n 为灰度等级,默认值为2,二值图像实际上也是灰度图像,只不过灰度级为2.
程序举例
close
all; clear all; clc
I=imread('aum.jpg');
[Y1,map1]=rgb2ind(I,128);%提取原始图像的颜色映射表
X=rgb2gray(I);
[Y,map]=gray2ind(X,64); %灰度图像转化为索引图像
figure,imshow(X);title('灰度图像');
figure,imshow(Y,map);title('索引图像');
RGB=ind2rgb(Y,map1);
figure,imshow(RGB);title('转换后的索引转RGB图像');
RGB1=ind2rgb(X,map1);
figure,imshow(RGB1);title('原灰度矩阵索引转RGB图像');
http://s2/mw690/002Pv8mHgy6IPc6LVZfe1&690
http://s4/mw690/002Pv8mHgy6IPc8rVLl43&690
http://s5/mw690/002Pv8mHgy6IPc9HLi494&690
http://s12/mw690/002Pv8mHgy6IPcan679fb&690
grayslice()函数
I=grayslice(G,n);该函数是将灰度图像中像素灰度均匀量化为n个等级,并转化为索引图像。
I=grayslice(G,v);该函数是将灰度图像按阀值适量v进行值域划分,并转换为索引图像,v中每一个元素都在0-1之间。
程序举例:
close
all; clear all; clc
http://s7/mw690/002Pv8mHgy6IPepM80C56&690
http://s9/mw690/002Pv8mHgy6IPer3Ylqb8&690
二值图像的转换
-
将灰度图像转化为二值图像
BW=im2bw(I,level);该函数通过阀值level【0-1】,将将灰度图像转换成二值图像。
程序举例
close all;clear all;clc;
I=imread('aum.jpg');
X=rgb2gray(I);%灰度转换
BW1=im2bw(X,0.2);%不同的灰度阀值
BW2=im2bw(X,0.4);
BW3=im2bw(X,0.6);
BW4=im2bw(X,0.8);
figure,
subplot(221),imshow(BW1);
subplot(222),imshow(BW2);
subplot(223),imshow(BW3);
subplot(224),imshow(BW4);
figure,imshow(X);
http://s16/mw690/002Pv8mHgy6IPfBtLGv4f&690
-
将索引图像转化为二值图像
BW=im2bw(X,map,level);利用该函数设置阀值level,将索引图像转哈为二值图像,
程序举例
close all;clear all;clc;
I=imread('aum.jpg');
[X,map]=rgb2ind(I,64);%灰度图像转换为索引图像
BW=im2bw(X,map,0.5);
figure,imshow(X,map);title('彩色索引图');
figure,imshow(BW);title('转换的二值图像');http://s1/mw690/002Pv8mHgy6IPgjrwAM80&690
http://s3/mw690/002Pv8mHgy6IPgkHAHwc2&690
-
RGB图像转换成二值图像
BW=im2bw(I,level);该函数通过阀值将RGB图像转换成二值图像,
程序举例
close all;clear all;clc;
I=imread('aum.jpg');
BW5=im2bw(I,0.5);
figure,
subplot(121),imshow(I);
subplot(122),imshow(BW5);http://s6/mw690/002Pv8mHgy6IPgYobFrf5&690
-
数字矩阵转换为灰度关系
在一个Matlab中,一个数据矩阵就相当于一幅数字图像,在Matlab中,利用函数mat2gray(),将一个数据矩阵转换为一幅灰度图像。
I=mat2gray(X,[xmin,xmax]);该函数是按照指定的取值区间[xmin,xmax]将数据矩阵转换为灰度图像,xmin对应灰度值为0,即黑色,xmax对应灰度值为1,即白色,取值范围为[0,1],默认情况下设置为【0,1】。
程序举例
close all;clear all;clc
X=magic(256);
I=mat2gray(X);
figure,imshow(I);http://s9/mw690/002Pv8mHgy6IPkdfIIU28&690