matlab图像处理函数

article/2025/9/11 13:08:47
1.1 读取和保存图像(其中I=imread(‘’))

1.1.1 imtool()
imtool(I)在图形中显示灰度图像I,I为矩阵,元素范围为0-255.
imtool(I,[low,high])小于等于low的为黑色,大于等于high的为白色,中间的为灰度默认等级。
imtool(X,map)X为索引图像,为一矩阵,map为颜色表,第一二三个元素分别是红绿蓝。
imtool(RGB)显示真彩色图像,
imtool(BW)显示二值图像。BW为一个矩阵,元素由0和1组成,0为黑色,1为白色。
imtool close all 关闭所有图像工具

1.1.2 subplot(m,n,p)或者subplot(m n p)
subplot是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果m=2就是表示2行图。p表示图所在的位置,p=1表示从左到右从上到下的第一个位置。

1.1.3  subimage 和imshow
subimage 显示坐标
imshow不显示坐标


1.1.4 图像的数据格式

1、uint8与double
double函数只是将读入图像的uint8数据转换为double类型,一般不使用;常用的是im2double函数,将uint8图像转为double类型,范围为0-1,如果是255的图像,那么255转为1,0还是0,中间的做相应改变。
MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double。因I2=im2double(I1) :把图像数组I1转换成double精度类型;如果不转换,在对uint8进行加减时会产生溢出。默认情况下,matlab将图象中的数据存储为double型,即64位浮点数;matlab还支持无符号整型

(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。
    im2double():将图象数组转换成double精度类型
    im2uint8():将图象数组转换成unit8类型
    im2uint16():将图象数组转换成unit16类型

2、uint8和im2uint8
  在数据类型转换时候uint8和im2uint8的区别,uint8的操作仅仅是将一个double类型的小数点后面的部分去掉;但是im2uint8是将输入中所有小于0的数设置为0,而将输入中所有大于1的数值设置为255,再将所有其他值乘以255。图像数据在计算前需要转换为double,以保证精度;很多矩阵数据也都是double的。要想显示其,必须先转换为图像的标准数据格式。如果转换前的数据符合图像数据标准(比如如果是double则要位于0~1之间),那么可以直接使用im2uint8。如果转换前的数据分布不合规律,则使用uint8,将其自动切割至0~255(超过255的按255)。最好使用mat2gray,将一个矩阵转化为灰度图像的数据格式(double)    

3、double类型图像的显示
    图像数据在进行计算前要转化为double类型的,这样可以保证图像数据运算的精度。很多矩阵的很多矩阵数据也都是double的,要想显示其,必须先转换为图像的标准数据格式。如果直接运行imshow(I),我们会发现显示的是一个白色的图像。这是因为imshow()显示图像时对double型是认为在0~1范围内,即大于1时都是显示为白色,而imshow显示uint8型时是0~255范围。而经过运算的范围在0-255之间的double型数据就被不正常得显示为白色图像了。具体方法有:
 imshow(I/256);    ----------将图像矩阵转化到0-1之间               
 imshow(I,[]);     ----------自动调整数据的范围以便于显示 (注意这里,必须是灰度图,否则不行)
 imshow(uint8(I));
 imshow(mat2gray(I));
 上面的mat2gray是将最终获得的矩阵转化为灰度图像。常用的为:
 A = im2uint8(mat2gray(result))
 这样就将result矩阵转化为uint8类型的图像。


1.1.5 图像的减法运算(差分方法) 用途:

检测图像变化及运动物体,作为许多图像处理工作的准备步骤。 函数调用格式:
Z = imsubtract(X,Y) 和 Z = imabsdiff(X,Y) 实现:图像-图像,图像-常数
可以看到,减法运算中有两种函数可以,imsubtract(X,Y)和 imabsdiff(X,Y),两者基本没有太大的差别,但是减法操作有时会导致某些像素值变为一个负数,对于uint8或uint16类型的数据,如果发生这种情况,那么imsubtract函数自动将这些负数截取为0,而imabsdiff计算后取了绝对值,从而使用的时候,为了避免差值产生负值,同时避免像素值运算结果之间差异过小(减去后结果为负数的不好都变成0),建议调用函数imabsdiff。


2、图像转换:I = imread('1.jpg')

 

1)  二进制图像:在二进制图像中,每个点位两个离散值中的一个,这两个值代表开和关。二进制图像可以看做一个仅包括黑与白的特殊灰度图像,也可以看做仅有两种颜色的索引图像。

 

2)灰度图像:它的数据矩阵中的元素值一般都在[0,1]或[0,255]之间,灰度图像根据这些数据利用线性插值来和色图中的颜色种类匹配。灰度图像是一个二维的灰度(亮度)函数f(x,y)。

 

3)RGB图像:图像中每个象素的颜色用三个数据来存储,分别指定红、绿、蓝三原色在象素颜色中的比例关系,组成一个三维数组。彩色图像是由三个二维灰度函数f(x,y)组成。三个是RGB或者HSV。

 

4)索引图像:它的数据信息包括一个数据矩阵和一个双精度色图矩阵,它的数据矩阵中的值直接指定该点的颜色为色图矩阵中的某一种。色图矩阵中,每一行表示一种颜色,每行有三个数据,分别表示该种颜色中红、绿、蓝的比例情况,所有元素值都在[0,1]内。

 

5)  多帧图像: 多帧图像阵列是由多帧图像组成的,每一帧图像可以为前四种图像中的一种,但组成一个多帧图像阵列的图像必须为同一种。


2.1 RGB图像转换成灰度图像:

J = rgb2gray(I);

2.2 灰度图像转换成索引图像:

[x,map] = gray2ind(J);

2.3RGB图像转换成索引图像:

[x,map] = rgb2ind(I,256);

2.4索引图像转换成灰度图像:

J = ind2gray(x,map);

2.5索引图像转换成RGB图像:

K = ind2rgb(x,map);


2.6 灰度图像转换成二值图像:

 

1)灰度图像转换成二值图像:

BW = im2bw(I, level)

2)索引图像转换成二值图像:

BW = im2bw(X, map, level)

3)RGB图像转换成二值图像:

BW = im2bw(RGB, level)

     其中level就是设置阈值的。level取值范围[0, 1]。



3、图像变换:

 

3.1傅里叶变换:




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

相关文章

【Matlab】im2double的用法

im2double函数用于将图像转换为双精度。 语法形式有4种,分别是: I2 im2double(I); RGB2 im2double(RGB); I im2double(BW); X2 im2double(X, indexed); 描述: I2 im2double(I)将灰度图像I转换为双精度,必要时可以…

MATLAB图像处理,double 与im2double的用处与区别【学习笔记】

double只是将像素的灰度值从int8换为double,数值大小不变,125还是125.0。 im2double则附带了归一化操作,125变成了125/2550.490196078 double也不是毫无用处,在将一个256级的灰度图修改为4级时候就用这个,用im2double反…

信息论 | 计算离散信源的信息量和熵的MATLAB实现(函数封装调用)

《信息论基础》 实验报告 姓名 XX 班级 XXXXXX 学号 2020XXXXXXXX 实验项目 计算离散信源的熵 日期 2022.10.21 实验环境 联想电脑MATLAB R2018a版 实验内容与完成情况(记录实验内容、操作步骤、实验结果等,包括系统输出的错误信息&#xff0c…

信息量,信息熵,纯度

如果看不懂博文,请阅读《信息论基础》一看便懂。 链接:https://pan.baidu.com/s/1T7rS4owM2nU_DP6rthqUPA 提取码:zu9s (1)消息 消息是实体,信息是抽象的。可以从消息中获取信息。消息的表现形式可以是…

基于GIS技术的地质灾害易发性评价—信息量模型

1.将上述步骤的所有图层和历史滑坡点导入arcgis,并使用多值提取至点的步骤,提取滑坡点属性值 2.转换工具—表转excel,得到多值提取至点的表格 3.打开各图层属性表提取每一分级的栅格像元,并计算信息量值。

自信息量,熵及其性质

一般地,如果一个随机事件有种等可能的结果,那么对其编码恰需要n位二进制数,即n比特来储存消息。 因此,可以把对所有可能消息的最小二进制编码位数近似着作该随机事件的熵,记为H。 对于上面的例子分别有 定义2.3 …

GIS与地质灾害评价——信息量的统计

GIS与地质灾害评价中一般都要进行信息量的统计,特别是地质灾害易发性评价的过程中,我们通常将某一因子分为几类,为了比较某一因子不同类别致灾的贡献率,我们通常都要进行信息量的统计。 下边我将某一区域的高程因子为例进行信息量…

数学期望、信息量、信息熵、相对熵、交叉熵

1、数学期望 数学期望就是总体的均值,或者各项的加权平均。 先看离散的情况,假设X为离散型随机变量,x1,x2,x3,……,xk为随机变量的所有可能取值,p1,p2,p3&a…

信息论:信息量的计算

香农定义,一个事件包含信息量的大小由这个事件消除了多少不确定性决定 计算得出的信息称为 Shannon information content 信息量在某些情况下是可加的,比如: 得知一个六面骰子投掷三次的结果所包含的信息量,是得知投掷一次的结果…

信息量与信息熵

信息量 信息奠基人香农(Shannon)认为“信息是用来消除随机不确定性的东西”。也就是说衡量信息量大小就看这个信息消除不确定性的程度。 “太阳从东方升起了”这条信息没有减少不确定性。因为太阳肯定从东面升起。这是句废话,信息量为0。 …

信息量为什么要表示成对数的形式

近期在路上进行了不少的思考,任何方面,任何领域…我会把这些记录在手机的备忘录里,然后在周末总结出来,早就成了习惯。 近日对信息论,排队论以及贝叶斯定理关注比较多,后二者可以完全改造TCP的拥塞控制机制…

离散信源信息量、平均信息量的计算

信息量I与消息出现的概率 P(x) 之间的关系: 1.信息量是概率的函数,即If[P(x)]; 2.P(x) 越小,I越大,P(x) 越大,I越小; 3.若干个相互独立事件构成的消息,所含信息量等于各独立事件信息…

信息量和信息熵的理解

信息量和信息熵的概念最早是出现在通信理论中的,其概念最早是由信息论鼻祖香农在其经典的paper《A Mathematical Theory of Communication》中提出的。如今,这些概念不仅仅是通信领域中的基础概念,也被广泛的应用到了其他的领域中&#xff0c…

《通信原理》(2):信息量及平均信息量

前言 在上篇文章中我们介绍了下通信系统,按照信道中传输的是模拟信号还是数字信号,通信系统可分为模拟通信系统和数字通信系统;此外我们还介绍了广播、点-点、单工通信、半双工通信、全双工通信、并行传输、串行传输这些通信方式。在这篇文章…

特征选择——互信息量

最近做了一个数据比赛,由于对数据背后的业务不太了解,所以特征工程大多采取了“暴力”提取的方式,最终特征过多直接导致模型存在过拟合问题。所以赛后总结在做特征工程的过程中就要考虑特征的取舍问题,主要通过特征与因变量Y之间的…

信息论——信源信息量和信息熵

目录 一、概率基础知识 二、信源信息量和信息熵 离散有记忆信源 信源的随机性 信息量大小 自信息量;该符号出现后,提供给接收者的信息量,表示信源符号的先验不确定性 事件之间的互信息量:事件与事件之间的互信息量之所以存…

信息及信号量之信息量的推导过程

对此先让我们看一下官方的定义: 信息: 信息是对客观世界中各种事物的运动状态和变化的反映,是客观事物之间相互联系和相互作用的表征,表现的是客观事物运动状态和变化的实质内容。 信息量:对信息计量的一种量度 计算…

信息量理解、信息熵公式的推导

1, 了解信息熵先弄明白信息量的概念 信息量是指信息多少的量度。 信息量有两个重要的特点: (1)一个事件的信息量与这个事件发生的概率是呈负相关的。这个很好理解,就拿生活中的例子来说,越大概率事件所涵盖的信息量越小&#xff0…

信息量,熵,互信息,信道容量等相关概念

读论文时,发现关于信息论一无所知的样子,基本概念十分混淆,下面是一些基本概念及对应的理解~ 文章目录 一. 信息量二. 熵三. 联合熵四. 条件熵五. 互信息六. 信道容量 一. 信息量 1. 定义 信息量是对事件的不确定性的度量,单位b…

车牌识别C语言源码

欢迎加入群105060236讨论。 2011-11-23更新本算法主要分成这几个部分,图像采集(即图像输入)、图像预处理(粗略定位车牌位置)、图像处理(精确确定车牌位置,去噪)、车牌字符分割&…