matlab图像类型的转换九种

article/2025/9/28 5:35:56

在对图像进行处理时,很多时候对图像的类型有特殊的要求,例如,在对索引图像进行滤波时,必须把它转换为RGB图像,否则光对图像的下标进行滤波,得到的是毫无意义的结果。在MATLAB中,提供了许多图像类型转换的函数,从这些函数的名称就可以看出它们的功能。以下九个函数分别是:
1.dither函数
2.gray2ing函数
3.grayslice函数
4.im2bw函数
5.ind2gray函数
6.ind2rgb函数
7.mat2gray函数
8.rgb2gray函数
9.rgb2ind函数

1.dither函数

用dither函数可实现对图像的抖动。该函数通过颜色抖动(颜色抖动即改变边沿像素的颜色,使像素周围的颜色近似于原始图像的颜色,从而以空间分辨率来换取颜色分辨率)来增强输出图像的颜色分辨率。该函数可以把RGB图像转换成索引图像或把灰度图像转换成二值图像。

%%将RGB图像抖动成索引图像
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
I=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的   
map=pink(512);
X=dither(I, map);   %将RGB图像抖动成索引图像
subplot(1,2,1),
imshow(I);
subplot(1,2,2),
imshow(X, map);

在这里插入图片描述

%%利用dither函数将灰度图像抖动成二值图像
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
H=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的
I = rgb2gray(H)
BW=dither(I);     %将灰度图像抖动成二值图像
subplot(1,2,1),
imshow(I);
subplot(1,2,2),
imshow(BW);

在这里插入图片描述

2.gray2ing函数

gray2ind函数用于灰度图像或二值图像向索引图像的转换。该函数的调用方法如下。[X, map]= gray2ind(I, n):表示按照指定的灰度级n把灰度图像I转换成索引图像X,map为gray (n), n的缺省值为64。

%%利用gray2ind函数将灰度图像转换成索引图像
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
H=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的
I = rgb2gray(H);
[X, map]=gray2ind(I,32);      %将灰度图像转换成索引图像
subplot(1,2,1),
imshow(I);
subplot(1,2,2),
imshow(X, map);

在这里插入图片描述

3.grayslice函数

grayslice函数用于设定阈值将灰度图像转换为索引图像。该函数的调用方法如下。
(1)X=grayslice(I, n):表示将灰度图像I均匀量化为n个等级,然后转换为伪彩色图像X。
(2)X=grayslice(I, v):表示按指定的阈值矢量v(其中每个元素在0和1之间)对图像I进行阈值划分,然后转换成索引图像,I可以是double类型、uint8类型和uint16类型。

%%利用grayslice函数将灰度图像转换为索引图像
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
H=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的
I = rgb2gray(H)
X2=grayslice(I,8);          %将灰度图像转换为索引图像
subplot(1,2,1);
subimage(I);
subplot(1,2,2);
subimage(X2, jet(8));

在这里插入图片描述

4.im2bw函数

im2bw函数用于设定阈值将灰度、索引、RGB图像转换为二值图像。
BW=im2bw(I, level)
BW=im2bw(X, map, level)
BW=im2bw(RGB, level):level是一个归一化阈值,取值为[0,1]。

%%利用im2bw函数将真彩色转换为二值图像。
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
I=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的
X=im2bw(I,0.5);        %将真彩色转换为二值图像
subplot(1,2,1),
imshow(I);
subplot(1,2,2),
imshow(X);

在这里插入图片描述

5.ind2gray函数

ind2gray函数用于将索引图像转换为灰度图像。

I=ind2gray(X, map)         %将索引图像转换为灰度图像

6.ind2rgb函数

ind2rgb函数用于索引图像转换为RGB图像。

X=ind2rgb(I, map);         %将索引图像转换为RGB图像

7.mat2gray函数

mat2gray函数用于将数据矩阵转换为灰度图像。
该函数的调用方法如下。
I=mat2gray(A, [max, min]):按指定的取值区间[max, min]将数据矩阵 A 转换为灰度图像I。如不指定区间,自动取最大区间。其中,A为double类型,I为double类型。

8.rgb2gray函数

rgb2gray函数用于将一幅真彩色图像转换成灰度图像。

%%rgb2gray函数将一幅真彩色图像转换成灰度图像。
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
I=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的
X=rgb2gray(I);          %将一幅真彩色图像转换成灰度图像
subplot(1,2,1);
imshow(I);
subplot(1,2,2);
imshow(X);

在这里插入图片描述

9.rgb2ind函数

rgb2ind函数用于将真彩色图像转换成索引色图像。
该函数的调用方法如下。
(1)[X, map] = rgb2ind(RGB, n):使用最小量化算法把真彩色图像转换为索引图像。其中,n指定map中颜色项数,n最大不能超过65536。
(2)X = rgb2ind(RGB, map):在颜色图中找到与真彩色图像颜色值最接近的颜色作为转换后的索引图像的像素值。map中颜色项数不能超过65536。
(3)[X, map]= rgb2ind(RGB, tol):表示使用均匀量化算法把真彩色图像转换为索引图像,map中最多包含(floor(1/tol)+1)^3种颜色,tol的取值介于0.0和1.0之间。
(4)[…] = rgb2ind(…, dither_option):其中,dither_option用于开启/关闭dither, dither_option可以是’dither’(默认值)或’nodither’。

%%rgb2ind函数将真彩色图像转换成索引色图像。
clc;%clc的作用就是清屏幕
clear;%clear是删除所有的变量
close all;%close all是将所有打开的图片关掉。
I=imread('E:\我的桌面\MATLAB\练习\2.jpg');%绝对路径的
[X, MAP]=rgb2ind(I,0.7);       %将真彩色图像转换成索引色图像
subplot(1,2,1);
imshow(I);
subplot(1,2,2);
imshow(X, MAP);

在这里插入图片描述


http://chatgpt.dhexx.cn/article/ItwaatNF.shtml

相关文章

matlab mat2gray函数 对图像数据归一化的理解以及互转

刚好今天也有需要用三维重建中的深度数据,数据值大于255,自己用matlab可以显示出来,如果直接保存成图片数据都是1,什么都看不到,拿给别人也没有用,于是就想到用mat2gray先将数据进行归一化到(0,…

Matlab中mat2gray函数用法

目录 语法 描述 例子 将矩阵转换为图像 ​​​​​​​ mat2gray将矩阵转换为灰度图像 语法 I mat2gray(A,[amin amax]) I mat2gray(A)描述 I mat2gray(A,[amin amax]) 将矩阵转换为包含0(黑色)到1(白色)范围内的值A的灰度…

图像处理函数——mat2gray、imclose、imopen、imerode

文章目录 1.mat2gray2.imclose3.imopen4.imerode 1.mat2gray 功能: 将矩阵转换为灰度图像 用法:: l mat2gray(A, [amin amax])将矩阵A转换为灰度图像l。 [amin amax]为表示转换的阙值,A中大于amax的值将转换成1,小于amin的值将转…

mat2gray

文章目录 SyntaxDescriptionConvert a Matrix into an Image mat2gray:将矩阵转换为灰度图像 Syntax I mat2gray(A,[amin amax]) I mat2gray(A)Description I mat2gray(A,[amin amax])将矩阵A转换为强度图像I,该强…

CAN网络dbc格式

dbc 格式 是vector公司定义的私有文件格式。因vector公司在汽车领域,用者甚众,dbc成为描述can matrix,can报文格式的一种重要形式。格式标准说明,见本人上传附件。 CAN协议领域,有很多CAN协议,通用的有J19…

CAN 网络通信矩阵

CAN 网络通信矩阵 通信矩阵DBC文件DBC软件 通信矩阵 将信号、消息和网络节点的相互关系以表格形式展现,由OEM定义。 车辆网络中各节点ECU必须遵循该通讯矩阵才能完成信息的交互和共享。 网络节点:一个汽车控制器作为一个网络节点消息:一个控…

整车CAN网络介绍---CAN--PT CAN--Chassis CAN--Body CAN--Info CAN

CAN(Controller Area Network)控制器局域网络,CAN网络在早期的整车应用中以BCM(车身控制 1.整车CAN网络介绍 CAN(Controller Area Network)控制器局域网络,CAN网络在早期的整车应用中以BCM(车身控制器)为控制中心,主要是车身零部件(雨刮/大灯…

【汽车总线技术】CAN FD与CAN网络共存的解决方案

1.CAN FD发展的背景介绍 随着总线技术在汽车电子领域越来越广泛和深入的应用,特别是自动驾驶技术的迅速发展,汽车电子对总线宽度和数据传输速率的要求也越来也高,传统CAN(1MBit/s,8Bytes Payload)已难以满…

整车CAN网络基本结构

在了解can网络之前, 先了解1个问题: 什么是智能硬件与ECU ? 何为智能硬件, 就是包含智能控制单元的硬件, 比如发动机, 发动机上有一块儿专门负责控制发动机进气量, 喷油量, 排气量的控制单元, 这块单元相当于发动机的大脑. 他具有信号发送, 信号接收, 参数存储等基本功能, 这…

CAN网络应用软件设计CANoeCANFD

CAN CAN网络应用 简单案例 典型汽车网络拓扑结构 动力CAN(1) 负责车辆动力和必须实时响应的安全相关ECU接入这条CAN 底盘动态CAN(2) 负责底盘动态控制和辅助相关的功能的ECU接入到这条CAN信息CAN(3) 负责仪…

AutoSar之CAN网络管理

本文首发于微信公众号“汽车控制与人工智能”欢迎关注。 今天整理下AUTOSAR中的CAN网络管理。 ​AUTOSAR中网络管理主要使用了CAN接口(CanIf),并提供通用网络管理接口(NmIf)。CAN网络管理在CAN架构中所处的位置如图1,与其他模块的交互如图2。 图1 CAN架构 图2 网络管理和…

can 网络管理

网络管理主要功能: 是用来管理ECU是否在网络里面,不在的话请求加入,也就是ALIVE报文,要判断是否掉线,以及睡眠状态的转换机制,以及跛行状态判,也即是RING报文。 主要的实现逻辑流程&#xff1…

CAN网络管理唤醒功能

采用1043的can 芯片:工作模式 – 正常模式 – 具有 INH 输出以及本地和远程唤醒请求功能的待机模式 – 具有 INH 输出以及本地和远程唤醒请求的低功耗睡眠模式 状态切换流程图: CAN唤醒的需求: 唤醒请求(Wake Up Request) 唤醒请求可分为两种: ● 主动唤醒请求:来自模…

关于CAN网络管理状态

首先介绍一下,我是一名刚刚入职1个月的汽车网络测试工程师,目前主要是一边学习一边跟着公司前辈做一个项目,主要的内容就是进行通信、网络、诊断方面的测试。想以文字的形式记下自己学习的一些感想或者是经验之类的,达到巩固知识的…

AutoSar之CAN网络管理详解

​AUTOSAR中网络管理主要使用了CAN接口(CanIf),并提供通用网络管理接口(NmIf)。CAN网络管理在CAN架构中所处的位置如图1,与其他模块的交互如图2。 图1 CAN架构 图2 网络管理和其他模块的联系 AUTOSAR网络管理基于分散的直接网络管理策略,这意…

CAN网络通信

1.网络层概述 1.1综述 这部分描述了网络层的整体功能。TP协议规定了用于网络节点之间交换数据的网络层通信协议,例如ECU与ECU之间,或测试设备与ECU之间。如果要传输的数据不能使用单个的CAN帧传输,则提供一种分包传输的方法。 传输通道是通信链路的物理组成部分,包含接收/传…

CAN网络管理Autosar(入门)

一,个人小心得 作为刚入门两个月汽车电子行业的软件工程师,现阶段在学习汽车组合开关的测试(主要用CANoe软件),在学习过程中总结了一些自己理解的知识点,当然也希望得到大佬们的指点。当然如果要做一个优秀…

汽车总线CAN网络分层机构 --3

CAN网络分层机构 CAN的分层结构 遵循ISO/OSI标准模型,CAN规定了分数据链路层和物理层。数据链路层又分逻辑链路控制子层LLC和媒体访问控制子层(MAC) CAN协议层 LLC子层和MAC子层的运行被“故障界定“实体监控着。错误界定是一种能区分短期干扰和永久故障的自校验…

AUTOSAR —— CAN网络管理(CanNm)

1. 网络状态 AUTOSAR网络管理节点内部有两个状态,一个是Requested - 被请求状态,另一个是Released - 被释放状态,当节点的应用层需要使用总线进行通讯的时候,会调用接口使得节点进入请求状态,当应用层没有通信需求的时…

AUTOSAR通信篇 - CAN网络通信(二:CanIf)

目录 初始化 数据发送 请求发送 发送数据流 发送缓存 发送确认 数据接收 数据接收提醒 读取接收数据 CAN控制器模式 控制器模式转换 唤醒 PDU通道模式控制 PDU通道组 PDU通道模式 总结 在上一篇,我们介绍了CAN模块,接下来我们介绍在CAN模…