实验三 图像增强--灰度变换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);