数字图像处理第二章
数字图像处理—灰度变换与空间滤波
图像的处理有两种思路,一种是对图像本身的直接处理,即空间域处理;另一种是在频率域进行处理。在空间域的处理相对简单,因此本文首先介绍的是空间域处理法。空域中有两种重要处理方法:灰度变换(或亮度变换)和空间滤波(或邻域处理、空间卷积)。
(一)背景知识
空间域处理表达式:
g(x,y)=T[f(x,y)]
其中,f(x,y)为输入图像,g(x,y)为处理后的图像,T为对图像的f的算子,作用于点(x,y)的领域。
(二)灰度变换函数
由于输出图像仅仅取决于点的灰度值,而不是取决于点的领域,因此灰度变换函数通常如公式所示:
s=T(r)
其中,r表示图像f中的灰度,s表示图像g中的灰度。两者在图像中处于相同的坐标(x,y)处。
2.1 imadjust函数
imadjust函数是针对灰度图像进行灰度变换的基本图像处理工具箱函数。
语法格式:
g = imadjust(f,[low_in; high_in],[low_out; high_out],gamma)
此函数将f的灰度值映射到g中的新值,也就是将low_in至hige_in之间的值映射到low_out至high_out之间的值。low_in以下与high_in以上的值被截去。也就是将low_in以下的值映射到low_out,high_in以上的值映射到high_out。
参数gamma指明了由f映射生成图像g时的曲线。如果gamma小于1,映射被加权至较亮的输出值。如果gamma大于1,映射被加权到较暗的输出值。如果省略了函数的参量,则gamma默认为1(线性映射)。
代码案例如下:
imread('D:\数字图像处理\blue.jpg'); %读取图片文件中的数据
f=imread('D:\数字图像处理\blue.jpg');
g1 = imadjust(f, [0 1], [1 0]); %对像素值进行反转,负片效果
imshow(g1); %显示图像g1
g2 = imadjust(f, [0.5 0.75], [0 1]); %将[0.5,0.75]之间的灰度扩展到[0,1]整个范围,图像颜色变鲜艳
figure; %创建一个用来显示图形输出的一个窗口对象
g3= imadjust(f, [0 1],[0.5 0.75]); %将[0.5,0.75]之间的灰度压缩到[0,1]整个范围,图像颜色变暗淡
figure; %创建一个用来显示图形输出的一个窗口对象
imshow(g3); %显示图像g3
g4 = imadjust(f, [], [],2); %非线性变化处理
figure; %创建一个用来显示图形输出的一个窗口对象
imshow(g4); %显示图像g4
g5= imadjust(f, [], [],0.6); %非线性变化处理
figure; %创建一个用来显示图形输出的一个窗口对象
imshow(g5); %显示图像g5
图片分别为:f g1 g2