实验三 图像增强--灰度变换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三图像增强—灰度变换

一、实验目的:

1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。

2、学会对图像直方图的分析。

3、掌握直接灰度变换的图像增强方法。

二、实验原理及知识点

术语‘空间域’指的是图像平面本身,在空间域内处理图像的方法是直接对图像的像素进行处理。空间域处理方法分为两种:灰度级变换、空间滤波。空间域技术直接对像素进行操作其表达式为:

g(x,y)=T[f(x,y)]

其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定领域内。

定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域。此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。T应用于每个位置(x,y),以便在该位置得到输出图像g。在计算(x,y)处的g值时,只使用该领域的像素。

灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。当处理单设(灰度)图像时,这两个术语可以互换。由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式: s=T(r)

其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。

核心函数是imhist,其基本语法为:

h=imhist(f,b)

其中,f为输入图像,h为其直方图h(),b是用于形成直方图像的灰度级的个数。如果b未包含在此变量中,则默认值为256.如要处理一幅uint8

类图像并令b=2,则亮度标度范围分为两部分:0—127和128—255.所得的直方图只有两个值:h(1)等于图像在区间[0,127]内的像素总数,h(2)等于图像在区间[127,255]内的像素总数。

使用 p=imhist(f,b)/numel(f)

则可获得归一化直方图。其中numel(f)是数组f中的元素个数(图像中的像素数)

三、实验内容:

1、图像数据读出

2、计算并分析图像直方图

3、利用直接灰度变换法对图像进行灰度变换

4、直方图绘制选项

例1:计算并绘制图像直方图

f=imread('e:\images\medicine.jpg');

imshow(f);

g=rgb2gray(f);

figure(2),imshow(g);

figure(3),imhist(g,256); %显示其直方图

g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负片图像)

figure,imshow(g1);

g2=imadjust(f,[0.5 0.75],[0 1]); %将0.5到0.75的灰度级扩展到范围[0 1]

figure,imshow(g2);

figure,subplot(1,2,1),imshow(g1);subplot(1,2,2),imshow(g2);

例2.1:显示图像的直方图

>> f=imread('e:\images\pollen.jpg');

>> whos f

Name Size Bytes Class

f 500x500x3 750000 uint8 array

Grand total is 750000 elements using 750000 bytes >>figure(1),imshow(f)

>> g=rgb2gray(f);

>> imshow(g)

>> figure,imhist(g);

2.2 学习使用imcontour函数

显示图像的等灰度值图

imcontour(I,n) n为灰度级的个数

imcontour(I,v) v是由用户指定所选的灰度级向量

>> figure(4),imcontour(g,8);

3、学习使用imadjust函数

通过直方图调整对比度

J=imadjust(I,[low high],[bottom top],gamma) 返回图像I经直方图调整后的图像J [low high] 为原图像中要变换的灰度范围

[bottom top] 指定了变换后的灰度范围

gamma为校正量

>> figure(3),imhist(g);

>> k=imadjust(g,[0.1 0.2 ] ,[ ]);

>> figure(4),imhist(k);

>> k=imadjust(g,[0.1 0.2 ] ,[ ]);

>> figure(4),imhist(k);

>> figure(5),imshow(k);

4、histeq函数

直方图均衡化

J=histeq(I,hgram)

将直方图变换成用户指定的向量hgram. hgram中的每一个元素都在[0 ,1]中。

J=histeq(I,n)

指定均衡化后的灰度级数n,缺少为64.

[J,T]=histeq(I,……)

返回从能将图像I的灰度直方图变换成图像J的直方图的变换T。

>> f=imread('e:\images\tyre.jpg');

>> whos f

Name Size Bytes Class

f 128x137x3 52608 uint8 array

Grand total is 52608 elements using 52608 bytes

>> imshow(f) >> g=rgb2gray(f);

>> figure,imhist(g);

>> k=histeq(g);

>> figure,imshow(k);

>> figure,imhist(k);

相关文档
最新文档