MATLAB图像处理之图像类型的转换 您所在的位置:网站首页 灰度图像转换成索引图像 MATLAB图像处理之图像类型的转换

MATLAB图像处理之图像类型的转换

2024-07-15 16:37| 来源: 网络整理| 查看: 265

图像类型转换函数表 函数名函数功能dither图像抖动,将灰度图变成二值图或将真彩色图像抖动成索引色图像gray2ind将灰度图像转换成索引图像grayslice通过设定阈值将灰度图像转换成索引色图像im2bw通过设定亮度阈值将真彩色,索引色,灰度图转化成二值图像

ind2gray

将索引图像转化成灰度图像ind2rgb将索引图像转化成真彩色图像mat2gray将数值矩阵转换成灰度图像rgb2gray将真彩色图像转化为灰度图像rgb2ind将真彩色图像转化为索引色图像 RGB图像转换为灰度图像

在MATLAB中,将RGB图像转换为灰度图像,需要调用函数rgb2gray( ),其调用格式如下:

X=rgb2gray(I):该函数是将RGB图像I转换为灰度图像X,其中I表示RGB图像,X表示转换后的灰度图像。 I = imread('test1.jpg'); %读取文件格式为.jpg X = rgb2gray(I); %将RGB图像转化为灰度图像 figure, subplot(121),imshow(I); subplot(122),imshow(X);

运行结果如下:

 RGB图像转换为索引图像

在MATLAB中,将真彩色图像转换成为索引图像直接调用函数rgb2ind ( ),在函数rgb2ind ( )还可以输入参数项dither_option,其表示是否使用抖动,其调用格式如下:

[X,map] = rgb2ind(I,tol) :该函数利用均匀量化方法将RGB图像转换为索引图像,I为原RGB图像,容差为tol,map包含至少\left ( floor\left ( 1/tol \right )+1 \right )^{3}个颜色[X,map] = rgb2ind(I,N) :使用具有 Q 种量化颜色的最小方差量化法并加入抖动,将 RGB 图像转换为索引图像 X,关联颜色图为map,map中至少包含N个图像。X= rgb2ind(I,map): 该函数通过与RGB中最相近的颜色进行匹配生成颜色映射的表map,将RGB图像转换为索引色图像。其中I为原RGB图像,map中的颜色是与RGB图像中颜色匹配最相近的颜色。[...]= rgb2ind(...,dither_option):启用或禁用抖动。其中dither表示抖动,从而达到更好的颜色效果;nodither表示不抖动。 >> RGB = imread('test1.jpg'); >> [X1,map1]=rgb2ind(RGB,64); >> [X2,map2]=rgb2ind(RGB,0.2); >> map3=colorcube(128); >> X3=rgb2ind(RGB,map3); >> figure; >> subplot(131);imshow(X1,map1); >> subplot(132);imshow(X2,map2); >> subplot(133);imshow(X3,map3);

运行结果如下:

 灰度图像转化为索引图像

在MATLAB中,灰度图像是一个二维数组矩阵,而索引图像不仅包括一个二维的数组矩阵,还包括一个M×3的颜色映射表。所以要想将灰度图像转换成为索引图像,则必须生成对应的颜色映射表。在MATLAB中可以直接调用函数gray2ind( )来实现图像转换。其调用格式如下:

[X,map]=gray2ind(I,n):该函数是将灰度图像I转换为索引图像,其中I指的是原灰度图像,n是灰度级数,默认值为64,[X,map]对应转换后的索引图像,map中对应的颜色值为颜色图gray(n)中的颜色值。[X,map]=gray2ind(BW,n):该函数是将二值图像BW转换为索引图像,其中I指的是二值图像,n是灰度级数,默认值为2,[X,map]对应转换后的索引图像,map中对应的颜色值为颜色图gray(n)中的颜色值。二值图像实际上也是灰度图像,只是其灰度级为2 而已 >> I=imread('test.tif'); >> [X,map]=gray2ind(I,128); >> figure,imshow(I); >> figure,imshow(X,map);

运行结果如下:

 

 索引图像转换为灰度图像

利用函数gray2ind( )可以将灰度图像转换为索引图像,同样,索引图像也是可以转换成为灰度图像的,在MATLAB中直接调用函数ind2gray( )即可实现,其调用格式如下:

I=ind2gray(X,map):该函数是将具有颜色映射表map的索引图像转换为灰度图像,去除了索引图像中的颜色、饱和度信息,保留了图像的亮度信息。其中[X,map]对应索引图像,I表示转换后的灰度图像。输入图像的数据类型可以是double型或uint8型,但输出为double型。 [X,map]=imread('test.tif'); %读取图像信息 I=ind2gray(X,map); %将索引图像转换为灰度图像 figure,imshow(X,map); %显示索引图像 figure,imshow(I); %显示灰度图像 索引图像转换为RGB图像

在MATLAB中,利用函数rgb2ind( )可以将RGB图像转换为索引色图像,同样索引图像也可以转换为RGB图像,利用函数ind2rgb( )即可实现,其调用格式如下:

RGB=ind2rgb(X,map):该函数是将索引图像[X,map]转换为RGB图像,其中[X,map]指向索引图像,RGB指向转换后的真彩色图像。转换过程中形成一个三维数组,然后将索引图像的颜色映射表中的颜色值赋值给三维数组。输入图像的数据类型可以是double型、uint8型或uint16型,输出为double型。 >>[X,map]=imread('k.tif'); RGB=ind2rgb(X,map); figure,imshow(X,map); figure,imshow(RGB); 二值图像的转换

在MATLAB中,二值图像中的数据类型实际上是logical型,’0’代表黑色、’1’代表白色,所以二值图像实际上是一幅“黑白”图像。那么,将其他图像转换为二值图像,首先必须规定一个规则:将其他数组中什么数据变为’1’,什么数据变为’0’。常用的方法是“阈值法”,它是确定一个阈值,小于阈值就取为’0’,其他的全部取为’1’。在MATLAB中实现这一功能的函数为im2bw( ),其调用格式根据转换的原图像不同而各有差异。如果输入不是灰度图像,先将其转换为灰度图像,然后通过阈值法转换为二值图像。

灰度图像转换为二值图像索引图像转换为二值图像RGB图像转换为二值图像 数值矩阵转换为灰度图像

在MATLAB中,一个数据矩阵就相当于一幅数字图像,只是在数字图像中对应的数组元素必须在一定的取值范围,因此,只要将对应数据矩阵中的元素按一定规律进行转换,就可以将矩阵转换为图像了。在MATLAB中可以利用函数mat2gray( ),将一个数据矩阵转换为一幅灰度图像,其调用格式为:

I=mat2gray(X,[ xmin, xmax]):该函数是按照指定的取值区间[xmin,xmax]将数据矩阵X转换为灰度图像I,xmin对应灰度值0,即黑色,xmax对应灰度值1,即白色。数据矩阵中小于xmin的值取为0,大于xmax的值取为1。如果不指定取值区间[xmin, xmax],即缺省情况下,将数据矩阵X中最小值设为xmin,最大值设为xmax。 >> X=magic(256); >> I=mat2gray(X); >> figure,imshow(I);

运行结果如下:

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有