图像灰度映射实验MATLAB,图像灰度变换实验报告

实验2a 图像的灰度变换

一、实验目的:

学会用Matlab软件对图像进行运算和灰度变换。

二、实验内容:

用+、-、*、/、imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply、imsubtract和imadjust等函数生成各类灰度变换图像。

三、实验相关知识

1、代数运算

两幅图像之间进行点对点的加、减、乘、除运算后得到输出图像。我们可以分别使用MATLAB的基本算术符+、-、*、/来执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型(命令函数为double())。为了更方便对图像进行操作,图像处理工具箱中也包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。如下所示:

imabsdiff:计算两幅图像的绝对差值

imadd:两个图像的加法

imcomplment:一个图像的补

imdivide:两个图像的除法

imlincomb:计算两幅图像的线性组合

immultiply:两个图像的乘法

imsubtract:两个图像的减法

使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。

代数运算的结果很容易超出数据类型允许的范围。图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。

2、灰度变换

点运算也称为灰度变换,是一种通过对图像中的每个像素值进行运算,从而改善图像显示效果的操作。

对于特定变换函数f的灰度变换,用户可以利用MATLAB强大的矩阵运算能力,对图像数据矩阵调用各种MATLAB计算函数进行处理。需要注意的是由于MATLAB不支持uint8类型数据的矩阵运算,所以首先要将图像数据转换为双精度类型,计算完成后再将其转换为uint8类型(命令为uint8( ))。

而在MATLAB图像处理工具箱中也提供了一个灰度变换函数imadjust,其语法格式为:J=imadjust(I, [low_in high_in], [low_out high_out], gamma)。[low_in high_in]是原图像中要变换的灰度范围,[low_out high_out]是指定变换后的灰度范围,两者的默认值均为[0 1]。gamma的取值决定了输入图像到输出图像的灰度映射方式,即决定是增强低灰度还是增强高灰度。gamma大于1、等于1和小于1的映射方式如下图所示。

你可能感兴趣的:(图像灰度映射实验MATLAB)