MATLAB图像处理学习——图像类型的转换

这篇具有很好参考价值的文章主要介绍了MATLAB图像处理学习——图像类型的转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.常用的图像类型转换函数

2.实例说明

 (1)RGB图像转换为灰度图像

 (2)RGB图像转换为索引图像

 (3)灰度图像转换为索引图像

 (4)索引图像转换为灰度图像

 (5)索引图像转换为RGB图像

 (6)二值图像的转换

 (7)数值矩阵转换为灰度图像


1.常用的图像类型转换函数

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

通过设定亮度阈值将真彩色、索引色、灰度图像转换成二值图像

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

2.实例说明

(1)RGB图像转换为灰度图像

(RGB图像:三通道图像)

需要用到函数“rgb2gray”,调用格式如下:

X=rgb2gray(I):该函数是将RGB图像I转换为灰度图像X

实例代码(将RGB图像转换为灰度图像):

close all;clear all;clc;
I=imread('D:\resource_photo\1.jpg');
X=rgb2gray(I);
figure;
subplot(121),imshow(I);
subplot(122),imshow(X);

实例运行结果:

MATLAB图像处理学习——图像类型的转换

RGB图像转灰度图像还有一种方法,就是使用函数“rgb2gray”将彩色颜色映射表map转换为灰度颜色映射表,使用方法如下:

newmap=rgb2gray(map): map代表原图像的颜色映射表,newmap代表转换后的图像颜色映射表。

实例代码(将RGB图像的颜色映射表转换为灰度图像的颜色映射表):

close all;clear all;clc;
[X,map]=imread('D:\resource_photo\1.tif');
newmap=rgb2gray(map);
figure,imshow(X,map);
figure,imshow(X,newmap);

运行结果:

MATLAB图像处理学习——图像类型的转换

 (2)RGB图像转换为索引图像

在早期的MATLAB版本中有大致4种转换方法,即直接法、均匀量化法、最小方法量化法和颜色表示近似法。

[X,map]=rgb2ind(I,tol):该函数是利用均匀量化的方法将RGB图像转换为索引图像。其中,I是原RGB图像,tol的范围是从0.0~1.0,[X,map]对应生成的索引图像,map包含至少(floor(1/tol)+1)^3个颜色。

[X,map]=rgb2ind(I,N):该函数是利用最小方差量化的方法,将RGB图像转换为索引图像。其中I是原RGB图像,[X,map]对应生成的索引图像,map中包含至少N个颜色。

X=rgb2ind(I,map):该函数是通过与RGB中最相似的颜色进行匹配生成颜色映射表map,将RGB图像转换为索引色图像的。

[...]=rgb2ind(...,dither_option):该函数是通过参数dither_option来设置图像转换是否进行颜色抖动,dither_option取值为dither表示抖动,取值为nodither表示不抖动。该格式中“...”表示根据显示任务的不同可以采用上面介绍的某种格式

实例代码(RGB图像转换为索引图像):

close all;clear all;clc;
RGB=imread('D:\resource_photo\0.jpg');
[X1,map1]=rgb2ind(RGB,64); %颜色总数N至少64种
[X2,map2]=rgb2ind(RGB,0.2);%颜色总数N至少216种
map3=colorcube(128); %创建一个指定颜色数目的RGB颜色映射表
X3=rgb2ind(RGB,map3);
figure;
subplot(131);imshow(X1,map1);
subplot(132);imshow(X2,map2);
subplot(133);imshow(X3,map3);

运行结果:

(图1:最小方差法转换后索引图像版、图2:均匀量化法转换后索引图像、图3:颜色近似法转换后图像)

MATLAB图像处理学习——图像类型的转换

 (3)灰度图像转换为索引图像

在MATLAB中,灰度图像是一个二维数组矩阵,而索引图像不仅包括一个二维的数组矩阵,还包括一个M*3的颜色映射表。所以要想将灰度图像转换为索引图像,则必须生成对应的颜色映射表。

需要使用函数“gray2ind()”,调用方法如下:

[X,map]=gray2ind(I,n):该函数是将灰度图像I转换为索引图像。其中I是原灰度图像,n是灰度级数,默认值为64,[X,map]对应转换后的索引图像。

[X,map]=gray2ind(BW,n):该函数是将二值图像BW转换为索引图像。其中I指的是二值图像,n是灰度级数,默认值为2,[X,map]对应转换后的索引图像,map中对应的颜色值为颜色图gray()中的颜色值。

(说明,二值图像即像素值非0即1,没有中间值,通常0表示黑色,1表示白色

实例代码:

close all;clear all;clc;
I=imread('D:\resource_photo\1(1).tif');
[X,map]=gray2ind(I,8);
figure,imshow(I);
figure,imshow(X,map);

代码运行结果:

MATLAB图像处理学习——图像类型的转换

 在MATLAB中,将灰度图像转换为索引图像,除了用函数gray2ind以外,还可以使用grayslice(),其转换方法是通过设定阈值将灰度图像转换为索引色图像,其调用格式如下:

I=grayslice(G,n):该函数是将灰度图像中像素灰度均匀量化为n个等级并转换为索引色图像。其中G表示灰度图像,n表示灰度级,I表示转换后的索引图像。

I=grayslice(G,v):该函数是将灰度图像按照阈值矢量v进行值域划分并转换为索引色图像。其中v中每一个元素都在0和1之间。

实例代码(利用阈值法将灰度图像转换为索引图像):

close all;clear all;clc;
I=imread('D:\resource_photo\1(1).tif');
X=grayslice(I,32);
figure,imshow(I);
figure,imshow(X,jet(32));

运行结果:

(左:原灰度图像I;右:灰度图像转换后的索引图像)

MATLAB图像处理学习——图像类型的转换

(4)索引图像转换为灰度图像

调用函数“ind2gray()”实现,调用格式如下:

I=ind2gray(X,map):该函数是将具有颜色映射表map的索引图像转换为灰度图像,去除了索引图像中的颜色、饱和度信息,保留了图像的亮度信息。其中[X,map]对应索引图像,I表示转换后的灰度图像。(输入图像可以是double型或者uint8型,但输出为double型)。

 实例代码(将索引图像转换为灰度图像):

close all;clear all;clc;
[X,map]=imread('D:\resource_photo\1(3).tif');
I=ind2gray(X,map);
figure,imshow(X,map);
figure,imshow(I);

运行结果:

(左:原索引图像,右:转换后的灰度图像)

MATLAB图像处理学习——图像类型的转换

 (5)索引图像转换为RGB图像

 索引图像转换为RGB图像可以用函数“ind2rgb()”,调用格式为下:

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

实例代码(将索引图像转换为真彩色图像):

close all;clear all;clc;
[X,map]=imread('D:\resource_photo\1(3).tif');
RGB=ind2rgb(X,map);
figure,imshow(X,map);
figure,imshow(RGB);

运行结果:

(左:索引图像,右:转换后的RGB图像)

MATLAB图像处理学习——图像类型的转换

 将两个图像进行比较,两者几乎完全一致,但是实际上,两种图像的数据组成形式是不同的

索引图像是由数组X和颜色映射表map构成,图像中像素的颜色值是对应数组元素值映射到颜色映射表中map中的颜色值。RGB图像是由一个三维数组构成的

(6)二值图像的转换

1.将灰度图像转换为二值图像

函数及调用方法:

BW=im2bw(I,level):该函数是通过设置阈值参数level,将灰度图像转换为二值图像。其中I为灰度图像,level为设置的阈值参数,取值范围为[0,1],BW是转换后的二值图像。

实例代码(灰度图像转换为二值图像):

close all;clear all;clc;
I=imread('D:\resource_photo\1(1).tif');
BW1=im2bw(I,0.4);
BW2=im2bw(I,0.6);
figure;
subplot(131),imshow(I);
subplot(132),imshow(BW1);
subplot(133),imshow(BW2);

代码运行结果:

(图1:原灰度值图像,图2:level=0.4转换后的二值图像,图3:level=0.6转换后的二值图像)

MATLAB图像处理学习——图像类型的转换

 观察这三幅图像可以发现:二值图像中只有黑白两种灰度值。level值较小时,会出现背景区域与目标区域混淆;level值较大时,则会丢失部分目标信息

2.将索引图像转换为二值图像

BW=im2bw(X,map,level):该函数通过设置阈值参数level,将索引色图像转换为二值图像。其中[X,map]代表索引图像。

实例代码(索引图像转换为二值图像):

close all;clear all;clc;
[X,map]=imread('D:\resource_photo\1.tif');
BW=im2bw(X,map,0.4);
figure,imshow(X,map);
figure,imshow(BW);

代码运行结果:

MATLAB图像处理学习——图像类型的转换

 (然然直接吓出线稿了捏...........)

3.将RGB图像转换为二值图像

BW=im2bw(I,level):RGB图像转换为二值图像。其中I为原RGB图像。

实例代码(RGB图像转换为二值图像):

close all;clear all;clc;
I=imread('D:\resource_photo\1.jpg');
BW=im2bw(I,0.4);
figure,imshow(I);
figure,imshow(BW);

运行结果:

MATLAB图像处理学习——图像类型的转换

 (7)数值矩阵转换为灰度图像

在MATLAB中,一个数据矩阵就相当于一幅数字图像

所用函数,调用方法如下:

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

实例代码(数值矩阵转换为灰度图像):

close all;clear all;clc;
X=magic(256);
I=mat2gray(X);
figure,imshow(I);

运行结果:

MATLAB图像处理学习——图像类型的转换文章来源地址https://www.toymoban.com/news/detail-443589.html

到了这里,关于MATLAB图像处理学习——图像类型的转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【matlab 图像处理】图像锐化

    对人眼视觉系统的研究表明,人类对形状的感知一般通过识别边缘、轮廓、前景和背景而形成。在图像处理中,边缘信息也十分重要。边缘是图像中亮度突变的区域,通过计算局部图像区域的亮度差异,从而检测出不同目标或场景各部分之间的边界,是图像锐化,图像分割、区域形状

    2024年02月05日
    浏览(32)
  • 基于matlab的数字图像处理之彩色图像处理

    一、实验目的 (1)了解如何利用RGB分量生成简单的图像。 (2)熟练掌握RGB彩色模型转换到HIS彩色模型的过程。 (3)熟练掌握RGB图像的彩色分割。 (4)熟练掌握彩色图像如何在向量空间中进行边缘检测。 二、实验仪器(软件平台)     计算机、MATLAB软件 三、实验原理

    2024年02月06日
    浏览(35)
  • 数字图像处理-matlab图像内插

    目标各像素点的灰度值代替源图像中与其最邻近像素的灰度值 参考博客 假设一个2X2像素的图片采用最近邻插值法需要放大到4X4像素的图片,右边该为多少? 最近邻插值法坐标变换计算公式: s r c X = d s t X ∗ ( s r c W i d t h / d s t W i d t h ) srcX=dstX*(srcWidth/dstWidth) src X = d s tX ∗

    2024年02月03日
    浏览(45)
  • 数字图像处理实验之Matlab对图像的基本处理

    1、提取Lena图像的左半上角部分,与原始Lena图像在同一个figure中显示,并做适当命名 效果图 2、利用 imnoise , 对原始Lena图像叠加高斯噪声,产生4幅、14幅、140幅的含噪图像。对这些含噪图像采用 相加  运算,来验证、比较图像相加消除叠加性噪声的效果。将原始图像、1幅噪

    2024年02月03日
    浏览(42)
  • matlab数字图像处理之图像增强

    图像处理 基本目的之一是改善图像质量,而改善图像最常用的技术是图像增强的目的是为了改善图像的视觉效果,使图像更加清晰,便于人和计算机对图像进一步的分析和处理 图像质量 的基本含义是指人们对一幅图像视觉感受的评价。图像增强的目的就是为了改善图像显示

    2024年02月04日
    浏览(41)
  • 【matlab图像处理】图像直方图操作和matlab画图

    中国史之【平王东迁】: 公元前771年,因镐京曾遭地震,残破不堪,又接近戎、狄等外患威胁,周平王遂在郑、秦、晋等诸侯的护卫下,将国都东迁至洛邑,东周历史由此开始。 ——来源:全历史APP 【路漫漫其修远兮,吾将上下而求索】 今天介绍图像的直方图操作以及用

    2024年02月04日
    浏览(35)
  • 数字图像处理之matlab实验(五):形态学图像处理

    常见的形态学处理包括腐蚀、膨胀、开运算、闭运算。不同的操作有不同的作用,同样的操作在不同类型的图片上也有不同效果,具体效果如下表格所示。要求熟练掌握对二值图像的形态学处理。 不同操作对不同类型图像处理效果 一、对二值图像进行处理 1、结构元素 在开

    2024年02月04日
    浏览(47)
  • 数字图像处理之matlab大作业:自制图像处理小工具

    学习的过程向来不是容易的,创造一个作品的过程更是不容易的。因此,在文章的最后,提供了两个现成的示例代码,大家直接可以拿来运行。在完成大作业的时候,大家可以在已有作品的基础上,按照自己的需求进行修改,添加我们课程要求的功能,并体会如何完成一个完

    2024年02月10日
    浏览(35)
  • 数字图像处理 关于matlab的图像变换

    熟悉及掌握图像的傅里叶变换、离散余弦变化原理及性质,实现图像的频率域变换。 1. 读入一幅图像,分别为图像添加叠加密度为0.04的椒盐噪声,均值为0方差为0.02的高斯噪声,做FFT变换。将原始图像、原始图像频谱图、添加噪声后的图像,以及噪声图像的频谱图同时显示出

    2024年02月05日
    浏览(38)
  • matlab数字图像处理——图像的读写,灰度、二值图像

    一、实验目的 1.结合数字图像处理的知识,直观感受图像处理的基本实现过程 2.熟悉MATLAB工具的使用 3.了解图像的读写和显示 二、实验内容 实验内容一:图像读取 (1)利用编程实现读取图像 利用imread读取文件夹images中的图像;查看读取到的图像数据矩阵,对比灰度图像、

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包