MATLAB中图像类型转换

1. 概述     

      在许多图像处理过程中,常常需要进行图像类型转换,否则对应的操作没有意义甚至会出错。在MATLAB中,各种图像类型之间的转换关系如图1所示:

图1 图像类型转换关系

 

     在MATLAB中,要进行图像类型转换可以直接调用MATLAB函数,表1中列举了常用的图像类型转换函数。

   函数名                                    函数功能
gray2ind将灰度图像转换成索引图像
im2bw通过设定阈值将真彩色、索引色、灰度色、转换成二值图像
ind2gray将索引图像转换成灰度图像
ind2rgb将索引图像转成真彩色图像
mat2gray将数值矩阵转化成灰度图像
rgb2gray将真彩色图像转换成灰度图像
rgb2ind将真彩色图像转换成索引图像

2. 转换示例:

    1> RGB图像转换为灰度图像和索引图像

     代码示例1:

close; 
clear all; 
clc;
%% 使用rgb2gray(I)函数
I = imread('football.jpg');
X = rgb2gray(I);
figure,
subplot(2,2,1),imshow(I);title('原RGB图像');
subplot(2,2,2),imshow(X);title('转换后的灰度图像');
%% 使用映射表  换一张图片
[A,map] = imread('trees.tif');
newmap = rgb2gray(map);
subplot(2,2,3),imshow(A,map);title('原RGB图像');
subplot(2,2,4),imshow(A,newmap);title('map转换后的灰度图像');

     运行结果如下图:

       2> RGB图像转换为索引图像

      代码示例2:

close; 
clear all; 
clc;

RGB = imread('football.jpg');				
[X1,map1]=rgb2ind(RGB,64);					%将RGB图像转换成索引图像,颜色种数N是64种      
[X2,map2]=rgb2ind(RGB,0.2);					%将RGB图像转换成索引图像,颜色种数N是216种
map3= colorcube(128);						%创建一个指定颜色数目的RGB颜色映射表
X3=rgb2ind(RGB,map3);
set(0,'defaultFigurePosition',[100,100,1000,500]); 	%修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]);				%修改图形背景颜色的设置
figure; 
subplot(131),imshow(X1,map1); %显示用最小方差法转换后索引图像
subplot(132),imshow(X2,map2); %显示用均匀量化法转换后索引图像
subplot(133),imshow(X3,map3); %显示用颜色近似法转换后索引图像

     其运行结果如图:

      从视觉上看图片没有什么差距,但是他们的map是不一样的,通过 whos map 查看

图2 不同map

   3> 索引图像转为RGB图像

    代码示例3:

close all;
clear all;
clc;

[X,map]=imread('kids.tif');                        
RGB=ind2rgb(X,map);                      %将索引图像转换为真彩色图像
set(0,'defaultFigurePosition',[100,100,1000,500]);  %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]);               %修改图形背景颜色的设置
figure,
subplot(121);imshow(X,map);						%显示原图像
title('原索引图像');
subplot(122);imshow(RGB);							%显示真彩色图像
title('RGB图像');

    运行结果:

     4>索引图像与灰度图像之间的转换

clc;
close all;
clear all;

%% 灰度转索引
I = imread('cameraman.tif');                         %读取灰度图像信息                        
[X,map]=gray2ind(I,8);                          %实现灰度图像向索引图像的转换,N取8, N表示灰度级
set(0,'defaultFigurePosition',[100,100,1000,500]);  %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]);               %修改图形背景颜色的设置
subplot(221),imshow(I);           
title('原灰度图像');
subplot(222),imshow(X, map);       
title('N=8转换后索引图像');
%% 索引转灰度
[X,map]=imread('kids.tif');
I = ind2gray(X,map);							%再将索引图像转换为灰度图像
set(0,'defaultFigurePosition',[100,100,1000,500]);	%修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]);				%修改图形背景颜色的设置
subplot(223),imshow(X,map);					%将索引图像显示
title('索引图像');
subplot(224),imshow(I);						
title('转换后的灰度图像');

     其运行效果:

 

       其他类型之间的图像转换与示例1-4类似,合理使用表1所展示的图像转换函数即可实现图像类型的转换。

       注意:数据量少的类型无法通过这里所述方法转换到数据量多的类型,即数据不能凭空捏来!当然,使用卷积等方法还是可以实现的,这种方式后会进行介绍。

  • 8
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值