MATLAB图形图像处理——图像灰度变换

本文介绍了MATLAB在图像处理中的应用,重点讲解了图像灰度变换,包括图像数据类型、位深、imread和imwrite函数的使用。接着深入探讨了二值化与阈值处理、线性和非线性灰度变换,特别是直方图均衡化的概念和在MATLAB中的实现。通过示例代码展示了如何使用histeq函数增强图像对比度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、MATLAB入门知识

1、什么是MATLAB

全世界数以百万计的工程师和科学家都在使用 MATLAB 分析和设计改变着我们的世界的系统和产品。基于矩阵的 MATLAB 语言是世界上表示计算数学最自然的方式。可以使用内置图形轻松可视化数据和深入了解数据。欢迎您使用桌面环境进行试验、探索和发现。这些 MATLAB 工具和功能全部进行了严格测试,可彼此配合工作。

MATLAB 可帮助您不仅仅将自己的创意停留在桌面。您可以对大型数据集运行分析,并扩展到群集和云。MATLAB 代码可以与其他语言集成,使您能够在 Web、企业和生产系统中部署算法和应用程序。

2、MATLAB处理图像

图像数据

图像数据,其实就是一个一个像素点的像素值组成的矩阵,可以说是二维矩阵,也可以说是三维矩阵。大多数图像表示为二维数组(矩阵),其中矩阵的每个元素对应所显示图像的一个像素。例如,由 200 行和 300 列不同颜色的点组成的图像保存为一个 200×300 的矩阵。有些图像,如 RGB,需要三维数组,其中三个维度的第一个平面表示红色像素强度,第二个平面表示绿色像素强度,第三个平面表示蓝色像素强度。

数据类型

MATLAB 数学支持三种不同的数值类用于图像显示:

  • 双精度浮点数(double)
  • 16 位无符号整数(uint16)
  • 8 位无符号整数(uint8)
    图像通常使用double型数据类型,但是double对于像素点巨大的图像不友好,占用内存过多。
    为了减小内存需求,可以将图像数据存储在 uint8 和 uint16 这两类数组中。这些数组中的数据存储为 8 位或 16 位无符号整数。同样的数据,这些数组只需要 double 数组的八分之一或四分之一的存储容量。

位深

描述图像中每个像素的数据所占的位数。图像的每一个像素对应的数据通常可以是1位(bit)或多位字节,用于存放该像素的颜色、亮度等信息,数据位数越多,对应的图像颜色种类越多。

函数

(MATLAB严格区分大小写)

imread

1、读取示例图

A = imread(‘filename’)

从 filename 指定的文件读取图像,并从文件内容推断出其格式。如果 filename 为多图像文件,则 imread 读取该文件中的第一个图像。

filename:
在这里插入图片描述
2、显示图像

image(A)

3、提取RGB

[X,cmap] = imread(‘corn.tif’);
imshow(X,cmap)

imwrite

A=rand(50);
imwrite(A,‘filename’)

将一个 50×50 的灰度值数组写入当前文件夹中的 JPG 文件。会发现文件夹中多了一个50×50的灰度图片。
在这里插入图片描述

二、图像灰度变换基础知识

1、二值化与阈值处理

一幅图像包括目标物体、 背景,甚至还有噪声。怎样从灰度值多变的图像中只提取感兴趣的目标信息, 最常用的方法就是设定某一阈值T,用T将图像的数据分成两大部分:大于T的像素群和小于T的像素群。这是研究灰度变换最特殊的方法,称为图像的二值化(binarization)。
二值化处理就是把图像分成目标和背景两个领域。

非零元素取一法

在这里插入图片描述

固定阈值法

在这里插入图片描述

双固定阈值法

在这里插入图片描述

2、基本的灰度变换

基本表示

表示原始图像在(x,y)处的像素值

r = f(x,y)

表示灰度变换后的图像在(x,y)处的像素值

s = g(x,y)

基本的图像变换表示为:

s = T( r )

T(r)被称为灰度变换函数

线性灰度变换

图像反转

在这里插入图片描述

正比类型的线性变换

在这里插入图片描述

分段线性变换

突出感兴趣目标所在的灰度区间,相对抑制那些不感兴趣的灰度空间
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

非线性灰度变换

在这里插入图片描述
由于对数曲线在像素值较低的区域斜率大,在像素值较高的区域斜率较小,所以图像经过对数变换后,较暗区域的对比度将有所提升,所以就可以增强图像的暗部细节。

对数变换对图像低灰度部分细节增强的功能过可以从对数图上直观理解:

在这里插入图片描述

x轴的0.4大约对应了y轴的0.8,即原图上0 ~ 0.4 的低灰度部分经过对数运算后扩展到0 ~ 0.8的部分,而整个0.4 ~ 1的高灰度部分被投影到只有0.8~1的区间,这样就达到了扩展和增强低灰度部分,压缩高灰度部分的值的功能。从上图还可以看到,对于不同的底数,底数越大,对低灰度部分的扩展就越强,对高灰度部分的压缩也就越强。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值