Matlab中实现图像转换的方法

什么是RGB图像?

通常,一幅RGB彩色图像的三个图像称为红、绿或蓝分量图像,分量图像的数据类决定了它们的取值范围。一幅RGB图像是一个M*N*3的彩色像素数组,其中每一个彩色像素是一个三值组,这三个值分别对应一个特定空间位置处该RGB图像的红、绿和蓝分量。若一幅RGB图像的数据类是double,则它的取值范围就是[0,1],类似地,uint8类或uint16类RGB图像的取值范围分别是[0,255]或[0,65535]。用来代表这些分量图像像素值的比特数决定了一幅RGB图像的比特深度。例如,若每个分量图像都是8比特的图像,则对应的RGB图像的深度就是24比特。一般来讲,所有分量图像的比特数都是相同的。在这种情况下,一幅RGB图像可能有的色彩数就是(2b)3,其中b是每个分量图像的比特数。对于8比特的例子,颜色数即为16777216。

什么是灰度图像?

灰度数字图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗黑色到最亮的白色的灰度,尽管理论上这个采样可以任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑白两种颜色,灰度图像在黑色与白色之间还有许多级的颜色深度。一幅完整的图像,是由红色、绿色、蓝色三个 通道组成的。红色、绿色、蓝色三个通道的缩览图都是以 灰度显示的。用不同的灰度色阶来表示“ 红,绿,蓝”在图像中的比重。通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255。

平均值法:Gray=(R+G+B)/3;

什么是索引图像?

索引图像是一种把像素值直接作为 RGB调色板下标的图像。索引图像可把像素值“直接映射”为调色板数值。一幅索引图包含一个数据矩阵data和一个调色板矩阵map,数据矩阵可以是uint8,uint16或双精度类型的,而调色板矩阵则总是一个m×3的双精度矩阵。调色板通常与索引图像存储在一起,装载图像时,调色板将和图像一同自动装载。索引模式和 灰度模式比较类似,它的每个 象素点也可以有256种颜色容量,但它可以负载彩色。灰度模式的图像最多只能有256种颜色。当图像转换成索引模式时,系统会自动根据图像上的颜色归纳出能代表大多数的256种颜色,就象一张颜色表,然后用这256种来代替整个图像上所有的颜色信息。

什么是二值图像?

二值图像(Binary Image)是指将图像上的每一个 像素只有两种可能的取值或灰度等级状态,人们经常用黑白、B&W、单色图像表示二值图像。二值图像是指在图像中, 灰度等级只有两种,也就是说,图像中的任何像素点的 灰度值均为0或者255,分别代表黑色和白色。

代码实现部分:

1、RGB图像->灰度图像

close; %关闭当前所有图形窗口
clear;                   %清空工作空间变量
clc;                        %清屏
X=imread('football.jpg');      %读取文件格式为.jpg,文件名为football的RGB图像的信息
%%% D:\Program Files\Polyspace\R2019b\toolbox\images\imdata
I=rgb2gray(X);              %将RGB图像转换为灰度图像
set(0,'defaultFigurePosition',[100,100,1000,500]);  %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]);               %修改图形背景颜色的设置
I2=histeq(I);     %提高对比度,产生较好的对比效果
subplot(221),imshow(X);            %显示原RGB图像
subplot(222),imshow(I);             %显示转换后灰度图像
subplot(223),imshow(I,[60,190]);                     %设置灰度上下为[60,190]显示该灰度图像
subplot(224),imshow(I2);
figure,
subplot(121),imhist(I);   %在新图中显示图像I的直方图
subplot(122),imhist(I2);  %均衡图像的灰度分布情况

2、RGB图像->索引图像

close; %关闭当前所有图形窗口
clear; %清空工作空间变量
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); %显示用颜色近似法转换后索引图像

3、灰度图像->索引图像

close; %关闭当前所有图形窗口
clear;                                         %清空工作空间变量
clc                                              %清屏
I=imread('cameraman.tif')                         %读取灰度图像信息                        
[X,map]=gray2ind(I,8);                          %实现灰度图像向索引图像的转换,N取8
set(0,'defaultFigurePosition',[100,100,1000,500]);  %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]);               %修改图形背景颜色的设置
figure,imshow(I);              %显示原灰度图像
figure, imshow(X, map);       %显示N=8转换后索引图像

4、索引图像->灰度图像

close; %关闭当前所有图形窗口
clear; %清空工作空间变量
clc; %清屏
[X,map]=imread('forest.tif');%像信息
I = ind2gray(X,map); %再将索引图像转换为灰度图像
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]); %修改图形背景颜色的设置
figure,imshow(X,map); %将索引图像显示
figure,imshow(I); %将灰度图像显示

5、索引图象->RGB图像

close; %关闭当前所有图形窗口
clear;                                       %清空工作空间变量
clc;                                           %清屏
[X,map]=imread('kids.tif');                        %读取图像信息
RGB=ind2rgb(X,map);                      %将索引图像转换为真彩色图像
set(0,'defaultFigurePosition',[100,100,1000,500]);  %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]);               %修改图形背景颜色的设置
figure, imshow(X,map); %显示原图像
figure,imshow(RGB); %显示真彩色图像

6、灰度图像->二值图像

close; %关闭当前所有图形窗口
clear; %清空工作空间变量
clc; %清屏
I=imread('rice.png'); %读取图像信息
BW1=im2bw(I,0.4); %将灰度图像转换为二值图像,level值为0.4
BW2=im2bw(I,0.6); %将灰度图像转换为二值图像,level值为0.6
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]); %修改图形背景颜色的设置
figure;
subplot(131),imshow(I); %显示level=0.4转换后的二值图像
subplot(132),imshow(BW1); %显示level=0.5转换后的二值图像
subplot(133),imshow(BW2); %显示level=0.6转换后的二值图像

7、RGB图像->二值图像

close; %关闭当前所有图形窗口
clear; %清空工作空间变量
clc; %清屏
I=imread('pears.png'); %读取图像信息
BW=im2bw(I,0.5); %将RGB图像转换为二值图像
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1]); %修改图形背景颜色的设置
figure,
subplot(121),imshow(I); %显示原图像
subplot(122),imshow(BW); %显示转换后二值图像

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空