基于matlab的直方图均衡化
- 格式:doc
- 大小:253.50 KB
- 文档页数:7
matlab的histeq函数
Matlab的histeq函数是一种直方图均衡化方法,通过将图像的像素
值重新分布来增强图像的对比度和亮度。
它可以用于改善图像的质量,使其更易于分析和处理。
在使用histeq函数之前,需要对图像进行预处理,将其转换为灰度图像。
然后,可以使用以下代码调用histeq函数:
```
I = imread('image.jpg'); % 读取图像
gray = rgb2gray(I); % 转换为灰度图像
J = histeq(gray); % 对灰度图像进行直方图均衡化
```
这段代码首先使用imread函数读取一张图像,然后使用rgb2gray函数将其转换为灰度图像。
最后,使用histeq函数对灰度图像进行直方图均衡化,并将结果保存在J中。
histeq函数的实现基于以下两个步骤:
1. 计算图像的直方图。
直方图是一种描述像素值分布的图表,它统计
了每个像素值出现的次数。
2. 重新分布像素值。
根据直方图信息,将像素值重新分布,使其更加均匀分布,从而增强图像的对比度和亮度。
在实际应用中,histeq函数可以用于图像增强、图像比较、色彩显著性分析等领域。
例如,在医疗图像中,直方图均衡化可以使图像的细节更明显,从而更易于诊断。
需要注意的是,histeq函数可能会导致图像出现过度增强和失真。
因此,在使用histeq函数之前,应该先对图像进行适当的调整,以确保结果符合需要。
总之,Matlab的histeq函数是一个常用的图像处理工具,可以帮助我们快速、方便地增强图像的对比度和亮度,提高图像的质量和可分析性。
课程设计报告题目基于matlab的直方图均衡化程序设计学生姓名:学生学号:系别:专业:届别:指导教师:电气信息工程学院制目录1、引言·······················································································- 2 -2、直方图基础 ···············································································- 2 -3、直方图均衡化············································································- 3 -3.1 直方图均衡化的概念·····················································································- 3 -3.2 直方图均衡化理论························································································- 4 -3.3 Matlab 实现······························································································- 4 -4、结论 ······················································································- 10 -5、心得体会················································································- 10 -参考文献·····················································································- 10 -基于matlab的直方图均衡化程序设计指导老师:马立宪电气工程学院:电子信息工程摘要:为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,通常采用直方图均衡化及直方图规定化两种变换,此文中探讨了直方图的理论基础,直方图均衡化的概念及理论,以Matlab 为平台,对某地区遥感TM单波段遥感影像进行直方图均衡化,并给出了具体程序、仿真结果图像、直方图及变换函数。
实验一直方图均衡化一、实验目的掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。
二、实验内容将一张彩色图片转换成灰色图片,做出均衡化后的直方图,并将灰度图和均衡化后的图片对比。
三、实验原理直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。
从而达到清晰图像的目的。
四、实验代码及结果clear all;f=imread('14.jpg');%读入灰色图像imwrite(rgb2gray(f),'14Gray.bmp'); %将彩色图片灰度化并保存f1=imread('14Gray.bmp');g=histeq(f1,250);%利用histep()函数对灰色图像进行直方图均衡化处理subplot(121);imshow(f1);title('灰色图像');%显示生成灰色图像subplot(122);imshow(g);title('直方图均衡化处理');%显示生成均衡化以后的图像五、实验结果分析利用imhist()函数对两幅图像的灰度范围进行分析,根据下图可知,灰色图像的灰度范围相对来说非常狭窄,图像质量比较差。
而经过直方图均衡化处理后,图像的对比度及平均亮度明显提高,直方图在整个亮度标度上明显扩展,图像质量明显提高。
实验二空域锐化一、实验目的理解图象锐化的概念,掌握常用空域锐化增强技术。
加深理解和掌握图像锐化的原理和具体算法,理解图象锐化增强的处理过程和特点。
二、实验内容利用一阶微分锐化增强,实现Roberts算子的锐化处理。
观察处理前后图像效果,分析实验结果和算法特点。
三、实验原理Roberts算子是突出图像的细节或者是增强被模糊了的细节。
因此要对图像实现锐化处理,可以用空间微分来完成,但是,这样图像的微分增强了边缘和其他的突变(如噪声)并削弱了灰度变化缓慢区域。
直方图和直方图均衡的Matlab完整程序(数字图像处理)一、实验目的掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。
二、实验内容将一张彩色图片转换成灰色图片,画灰度直方图和均衡化后的直方图,并将灰度图和均衡化后的图片对比。
三、实验原理灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其所出现的频度。
通常,灰度直方图的横坐标表示灰度值,纵坐标为像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。
直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。
从而达到清晰图像的目的。
四、实验程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%函数功能,画出图像的直方图,并对图像进行直方图均衡%直接读图像abc.jpg,读到tuu中%graydis是原始直方图各灰度级像素个数%原始直方图graydispro,利用原始直方图计算原始累计直方图graydispro%t[]计算和原始灰度对应的新的灰度t[],建立映射关系,t坐标代表原始的灰度,t[]代表对应原始坐标的新坐标%new_graydis是统计新直方图各灰度级像素个数%计算新的灰度直方图new_graydispro,利用新的直方图计算新的累计直方图new_graydispro%计算直方图均衡后的新图new_tu %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%clear allclose alltuu=imread('abc.jpg'); %读入图片tu=rgb2gray(tuu); %将彩色图片转换为灰度图graydis=zeros(1,256); %设置矩阵大小graydispro=zeros(1,256);new_graydis=zeros(1,256);new_graydispro=zeros(1,256);[h w]=size(tu);new_tu=zeros(h,w);%计算原始直方图各灰度级像素个数graydisfor x=1:hfor y=1:wgraydis(1,tu(x,y))=graydis(1,tu(x,y))+1;endend%计算原始直方图graydisprograydispro=graydis./sum(graydis);subplot(1,2,1);plot(graydispro);title('灰度直方图');xlabel('灰度值');ylabel('像素的概率密度');%计算原始累计直方图for i=2:256graydispro(1,i)=graydispro(1,i)+graydispro(1,i-1); end%计算和原始灰度对应的新的灰度t[],建立映射关系for i=1:256t(1,i)=floor(254*graydispro(1,i)+0.5);end%统计新直方图各灰度级像素个数new_graydisfor i=1:256new_graydis(1,t(1,i)+1)=new_graydis(1,t(1,i)+1)+graydis(1,i); end%计算新的灰度直方图new_graydispronew_graydispro=new_graydis./sum(new_graydis);subplot(1,2,2);plot(new_graydispro);title('均衡化后的灰度直方图');xlabel('灰度值');ylabel('像素的概率密度');%计算直方图均衡后的新图new_tufor x=1:hfor y=1:wnew_tu(x,y)=t(1,tu(x,y));endendfigure,imshow(tu,[]);title('原图');figure,imshow(new_tu,[]);title('直方图均衡化后的图');//////////////////////////////////////////////////////另外两种代码:Matlab下面的代码来自archiless,注释非常详细,适合初学。
自己编的代码Matlab中自带的函数clc;clear all;%用自己编的函数pic1=imread('188_2.jpg');%修改数字可以看到另一幅图片的效果pic1=rgb2gray(pic1);subplot(221);imshow(pic1);title('均衡化前的图像'); subplot(222);imhist(pic1);title('均衡化前的直方图');L=256;%设置灰度级为256[width,height]=size(pic1);%求nknk=zeros(1,L);for i=0:L-1num=find(pic1==(i+1));nk(i+1)=length(num);end%求pr(rk)=nk/MNpr=zeros(1,L);for i=1:Lpr(i)=nk(i)/(width*height);end%pc存储的就是累计的归一化直方图pc=zeros(1,L);for i=1:Lfor j=1:ipc(i)=pc(i)+pr(j);endendsk=zeros(1,L);for i=1:Lsk(i)=round((L-1)*pc(i));end%求pr(sk),即计算现有每个灰度级出现的概率并显示在屏幕上for i=0:L-1pr(i+1)=sum(pc(find(sk==i)));endpr %显示pr值%替换原有图片pic2=pic1;for i=1:Lpic2(find(pic2==(i-1)))=sk(i);endsubplot(223);imshow(pic2);title('均衡化后的图像'); subplot(224);imhist(pic2);title('均衡化后的直方图');%用matlab自带的函数pic1=imread('188_2.jpg');%先把要处理的图像读入pic1=rgb2gray(pic1);%转化成灰度图像%显示灰度图像与直方图figure;subplot(221);imshow(pic1);title('均衡化前的图像'); subplot(222);imhist(pic1);title('均衡化前的直方图');%直方图均衡化pic2=histeq(pic1);subplot(223);imshow(pic2);title('均衡化后的图像'); subplot(224);imhist(pic2);title('均衡化后的直方图');。
摘要毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
学院:自动化学院班级:电081班姓名:***学号:********2011年10月实验一直方图均衡化一、实验目的:1. 熟悉图像数据在计算机中的存储方式;2. 掌握图像直方图均衡化这一基本处理过程。
二、实验条件:PC微机一台和MATLAB软件。
三、实验内容:1.读入图像数据到内存中,并显示读入的图像;2.实现直方图均衡化处理,显示处理前后图像的直方图。
3.显示并保存处理结果。
四、实验步骤:1.打开Matlab编程环境;2.获取实验用图像。
用’imread’函数将图像读入Matlab;用’imshow’函数显示读入的图像。
3.获取输入图像的直方图:用’imhist’函数处理图像。
4.均衡化处理:用’histeq’函数处理图像即可。
5.获取均衡化后的直方图并显示图像:用’imhist’和’imshow’函数。
6.保存实验结果:用’imwrite’函数处理。
五、实验程序及结果:1、实验程序subplot(6,2,1);i=imread('test1-1.jpg');imhist(i);title('test1-1 hist');subplot(6,2,2);i=im2double(i);imshow(i);title('test1-1 Ô-ͼÏñ');subplot(6,2,3);s=histeq(i);imhist(s);title('test1-1 balancedhist');subplot(6,2,4);imshow(s);title('test1-1 ¾ùºâ»¯ºóµÄͼÏñ');subplot(6,2,5);i=imread('test1-2.jpg');imhist(i);title('test1-2 hist');subplot(6,2,6);i=im2double(i);imshow(i);title('test1-2 Ô-ͼÏñ');subplot(6,2,7);s=histeq(i);imhist(s);title('test1-2 balancedhist'); subplot(6,2,8);imshow(s);title('test1-2 ¾ùºâ»¯ºóµÄͼÏñ');subplot(6,2,9);i=imread('test1-3.jpg');imhist(i);title('test1-3 hist');subplot(6,2,10);i=im2double(i);imshow(i);title('test1-3 Ô-ͼÏñ');subplot(6,2,11);s=histeq(i);imhist(s);title('test1-3 balancedhist'); subplot(6,2,12);imshow(s);title('test1-3 ¾ùºâ»¯ºóµÄͼÏñ');2、实验结果test1-1 hist050100150200250test1-1 原图像test1-1 balancedhist00.10.20.30.40.50.60.70.80.91test1-1 均衡化后的图像test1-2 hist050100150200250test1-2 原图像test1-2 balancedhist00.10.20.30.40.50.60.70.80.91test1-2 均衡化后的图像0test1-3 hist050100150200250test1-3 原图像test1-3 balancedhist00.10.20.30.40.50.60.70.80.91test1-3 均衡化后的图像六、实验思考1.数字图像直方图均衡化之后直方图为什么不是绝对平坦的?答:直方图均衡化是将一已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像。
基于直方图均衡化的图像增强技术分析与Matlab实现作者:叶松赵文昌来源:《数字技术与应用》2012年第01期摘要:本文主要讨论了直方图均衡化处理的图像增强技术的基本原理,并用Matlab语言实现了直方图均衡化的图像增强处理。
实验结果表明,直方图均衡化处理能有效地改善图像的对比度,改善图像的灰度层次。
关键词:图像增强灰度级直方图均衡化 Matlab中图分类号:TP751 文献标识码:A 文章编号:1007-9416(2012)01-0174-02枷裨銮考际跏鞘滞枷翊硌芯康幕径韵笾弧T銮康闹饕康氖鞘雇枷癜刺囟ǖ男枰怀鐾枷裰械哪承┬畔ⅲ保魅趸虺鋈ツ承┎恍枰男畔。
图像空间域增强技术是数字图像增强的一个重要应用,是以对图像像素的直接处理为基础,通过线性或非线性变换来增强构成图像像素的一种技术。
本文所讨论的直方图均衡化增强方法便属于这种方法。
1、直方图处理灰度级直方图是灰度级的函数,是描述一幅图像中灰度级与出现这种灰度的概率之间的关系的图形,是图像最基本得统计特性。
直方图是多种空间域处理技术的基础,直方图操作能有效地用于图像增强。
为了便于数字图像处理,图像的直方图须引入离散形式。
灰度级为[0,L-1]范围的数字图像的直方图的离散函数为:h(rk)=nk (1)其中rk是第k级灰度,nk是图像中灰度级rk的像素个数。
在图像中,像素的灰度级要作归一化处理一遍计算机进行处理,用图像中像素的总数n来除它的每个值,得到归一化直方图:环枷竦幕叶燃秗被归一化到区间[0,1],且r=0代表黑色,r=1代表白色。
对于一幅给定的图像,每一个像素取得[0,1]区间内的灰度级是随机的,那么图像灰度级r可被看作为区间[0,1]的随机变量[2],就可以用概率密度函数pr(r)来表示原始图像的灰度分布。
令s为增强后的图像灰度级像素值,相应可以用概率密度函数ps(s)来表示增强后的图像灰度分布。
可以对[0,1]区间内原始图像的任意一个灰度级r值进行如下变换,得到输出灰度级s:s=T(r) (3)通过上述变换,每个原始图像的灰度值r都对应产生一个增强后图像的灰度级s值。
课程设计报告学生姓名:学生学号:系别:专业:届别:指导教师:电气信息工程学院制指导老师:马立宪电气工程学院:电子信息工程关键词:图像增强 直方图 均衡化Matlaba. 在0≤r≤1 区间内是单值单调增加函数;b. 对于0≤r≤1,有0≤T(r)≤1。
由概率论知,若Pr(r)和变换函数S=T(r)已知,T (S)是单值单调增-1P (S)=[P (r)dr/dS] =T (S)-13.2 直方图均衡化理论>> clear allPS=imread('E:\My Douments\2.jpg'); imshow(PS)[m,n]=size(PS);GP=zeros(1,256);%预创建存放灰度出现概率的向量for k=0:255GP(k+1)=length(find(PS==k))/(m*n);概率,将其存入GP中相应位置endfigure,bar(0:255,GP,'g')title('原图像直方图')xlabel('灰度值')ylabel('出现概率')原图像直方图end图3 直方图均衡化后的直方图PA(find(PS==i))=S2(i+1);将各个像素归一化后的灰度值赋给这个像素end显示均衡化后的图像- 7->> x=linspace(0,1,256);>> xlabel('输入亮度值','fontsize',20)>> ylabel('输出亮度值','fontsize',20)>> text(0.18,0.5,'变换函数','fontsize',20)图5变换函数[1]章毓晋.图像处理和分析教程[M].北京:人民邮电出版社,2009.11[2]王家文,曹宇.图形图像处理[M].北京:国防工业出版社,2004.5[3]杨杰.黄朝兵.数字图像处理及MATLAB实现电子工业出版社附录:仿真总图。
实验3 图像的直方图均衡化一、实验目的:理解直方图的概念,利用Matlab获取和绘制图像的直方图,并进行直方图均衡化处理。
二、实验内容:学习并应用imhist, histeq等函数进行直方图处理三、实验要求:提交原图像和各种直方图曲线,以及按直方图处理后的图像。
四、实验步骤1、生成并绘制图像的直方图在处理图像直方图的工具箱中,核心函数是imhist,其基本语法为:h=imhist(f,b)。
其中,f为输入图像,h为其直方图,b是用于形成直方图的灰度级的个数,默认值为256。
例如,若我们要处理一幅uint8类图像并令b=2,则亮度范围被分成两部分:0至127和128至255。
所得的直方图将有两个值:h(1)等于图像在区间[0,127]内的像素总数,h(2)等于图像在区间[128,255]内的像素总数。
使用p=imhist(f,b)/numel(f)可以得到归一化直方图。
函数numel(f)给出数组f 中的元素个数(即图像中的像素数)。
(1)阅读imhist的帮助文件;(2)读入一幅图像,使用imhist( )函数产生图像的直方图,分析它的直方图分布及反映图像的特点;(3)使用imadjust( )函数产生图像的对比度图,并使用imhist( )函数产生两个图像的直方图,分析图像对比度变化后的效果;实验结果:>> I=imread('C:\Documents and Settings\Administrator\桌面\实验\图像库\tif\boats720x576.tif'); >> J=histeq(I); %对原图像进行直方图均衡化处理%对直方图均衡化后图像进行屏幕控制;作一幅子图,并排两幅图的第1幅subplot(2,2,1);imshow(I); %显示原图像title('原图像'); %给原图像加标题名subplot(2,2,2);imshow(J);title('直方图均衡化后的图像') ;subplot(2,2,3);imhist(I,64); %将原图像直方图显示为64级灰度title('原图像直方图') ; %给原图像直方图加标题名subplot(2,2,4);imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度title('均衡变换后的直方图') ; %给均衡化后图像直方图加标题名原图像直方图均衡化后的图像01002004原图像直方图0100200050001000015000均衡变换后的直方图2、直方图均衡化直方图均衡化由工具箱中的函数histeq 实现,该函数语法为g=histeq(f,nlev)。
图像增强中直方图均衡化的Matlab 实现摘要:本文采用直方图均衡化的图像增强的基本原理, 借助数学公式, 在Matlab环境下, 对数字图像进行直方图均衡化处理, 实现原始图像直方图均匀分布, 增加像素灰度值的动态范围, 提高了图像的对比度。
关键词:图像增强, 直方图,均衡化, MatlabABSTRACT:In this paper, the basic principle of histogram equalization , image enhancement , with the mathematical formula , in the Matlab environment for digital image histogram equalization , to achieve uniform distribution of the original image histogram , increasing the dynamic range of pixel gray value , improve contrast of the image .KEYWORDS:image enhancement;histograme ;qualization;Matlab1引言图像增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或尖锐化。
当一幅图像曝光不足或过度,造成对比度过小或过大而不能显示具体细节,通过增加这些细节的动态范围改善图像的视觉效果。
图像增强可以突出图像中所感兴趣的特征信息,改善图像的主观视觉质量,提高图像的可懂度。
增强的首要目标是处理图像使其比原始图像更适合于特定应用。
图像增强的方法分为两大类:空间域方法和频域方法。
“空间域”一词是指图像平面本身,这类方法是以对图像的像素直接处理为基础的。
“频域”处理技术是以修改图像的傅氏变换为基础的。
一般说来,原始遥感数据的灰度值范围都比较窄,这个范围通常比显示器的显示范围小的多。
基于Matlab的数字图像直方图均衡教学实验许可;罗鹏飞;万建伟【摘要】随机过程的基本概念是“随机信号分析与处理”课程最基本的内容.本文将数字图像直方图均衡引入教学实验,详细讨论了实验原理、流程以及一些具体的注意事项,给出了Cameraman图像的实验结果,并对实验结果进行了深入的分析.该实验既可加强学生对随机过程基本概念的理解,也可提高学生运用随机过程的理论来解决实际问题的能力.【期刊名称】《电气电子教学学报》【年(卷),期】2014(036)001【总页数】3页(P87-89)【关键词】直方图均衡;反函数法定理;Matlab【作者】许可;罗鹏飞;万建伟【作者单位】国防科技大学电子科学与工程学院,湖南长沙410073;国防科技大学电子科学与工程学院,湖南长沙410073;国防科技大学电子科学与工程学院,湖南长沙410073【正文语种】中文【中图分类】TN911.73随机过程的基本概念作为“随机信号分析与处理”课程最基本的内容,是后续各章节学习的基础。
为让学生更加深入地理解随机过程的定义和性质,我们把“数字图像的直方图均衡”实验引入教学[1]。
我们通过这个信号处理实例可以合理地讲授两个知识点:①通过该实验加强学生对随机过程性质的理解,让学生认识到随机过程不仅可以随时间变化,也可随空间位置变化;②启发学生运用随机过程的理论来解决实际问题,认识到反函数法定理的逆过程从理论上支持直方图均衡实验,正过程则给出了产生任意分布随机数的方法。
对图像的灰度直方图进行均衡处理,能够在整个灰度范围内对数字图像进行自动调整,改善视觉效果。
尤其是当图像有用数据的对比度相当接近的时候,这个方法可有效增强图像局部的对比度而不影响整体的对比度,是一个典型而有效的图像处理方法。
直方图均衡在医学图像增强和遥感图像处理等方面已有广泛的应用,在著名的图像处理软件Photoshop和ACDSee中也有相应的功能[2-5]。
1 数字图像实验原理随机过程既可以是随时间变化的过程,也可以是随空间位置变化的过程。
直方图和直方图均衡的Matlab完整程序(数字图像处理)一、实验目的掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。
二、实验内容将一张彩色图片转换成灰色图片,画灰度直方图和均衡化后的直方图,并将灰度图和均衡化后的图片对比。
三、实验原理灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其所出现的频度。
通常,灰度直方图的横坐标表示灰度值,纵坐标为像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。
直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。
从而达到清晰图像的目的。
四、实验程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%函数功能,画出图像的直方图,并对图像进行直方图均衡%直接读图像abc.jpg,读到tuu中%graydis是原始直方图各灰度级像素个数%原始直方图graydispro,利用原始直方图计算原始累计直方图graydispro%t[]计算和原始灰度对应的新的灰度t[],建立映射关系,t坐标代表原始的灰度,t[]代表对应原始坐标的新坐标%new_graydis是统计新直方图各灰度级像素个数%计算新的灰度直方图new_graydispro,利用新的直方图计算新的累计直方图new_graydispro %计算直方图均衡后的新图new_tu%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear allclose alltuu=imread('abc.jpg');%读入图片tu=rgb2gray(tuu);%将彩色图片转换为灰度图graydis=zeros(1,256);%设置矩阵大小graydispro=zeros(1,256);new_graydis=zeros(1,256);new_graydispro=zeros(1,256);[h w]=size(tu);new_tu=zeros(h,w);%计算原始直方图各灰度级像素个数graydisfor x=1:hfor y=1:wgraydis(1,tu(x,y))=graydis(1,tu(x,y))+1;endend%计算原始直方图graydisprograydispro=graydis./sum(graydis);subplot(1,2,1);plot(graydispro);title('灰度直方图');xlabel('灰度值');ylabel('像素的概率密度');%计算原始累计直方图for i=2:256graydispro(1,i)=graydispro(1,i)+graydispro(1,i-1);end%计算和原始灰度对应的新的灰度t[],建立映射关系for i=1:256t(1,i)=floor(254*graydispro(1,i)+0.5);end%统计新直方图各灰度级像素个数new_graydisfor i=1:256new_graydis(1,t(1,i)+1)=new_graydis(1,t(1,i)+1)+graydis(1,i); end%计算新的灰度直方图new_graydispronew_graydispro=new_graydis./sum(new_graydis);subplot(1,2,2);plot(new_graydispro);title('均衡化后的灰度直方图');xlabel('灰度值');ylabel('像素的概率密度');%计算直方图均衡后的新图new_tufor x=1:hfor y=1:wnew_tu(x,y)=t(1,tu(x,y));endendfigure,imshow(tu,[]);title('原图');figure,imshow(new_tu,[]);title('直方图均衡化后的图');//////////////////////////////////////////////////////另外两种代码:代码Matlab下面的代码来自archiless,注释非常详细,适合初学。
实验一图像的直方图均衡一、实验目的1,理解直方图均衡的原理与作用2,掌握统计图像直方图的方法3,掌握图像直方图均衡的方法二、实验原理在实际应用中,希望能够有目的地增强某个灰度区间的图像,即能够人为地修正直方图的形状,使之与期望的形状相匹配,这就是直方图规定化的基本思想。
换句话说,希望可以人为地改变直方图形状,使之成为某个特定的形状,直方图规定化就是针对上述要求提出来的一种增强技术,它可以按照预先设定的某个形状来调整图像的直方图。
直方图规定化是在运用均衡化原理的基础上,通过建立原始图像和期望图像之间的关系,选择地控制直方图,使原始图像的直方图变成规定的形状,从而弥补了直方图均衡不具备交互作用的特性。
三、知识点和涉及的相关知识图像的空间域增强、图像的直方图概念、性质。
四、实验内容1,MATLAB代码:clear all%一,图像的预处理,读入彩色图像将其灰度化PS=imread('1.jpg'); %读入JPG彩色图像文件imshow(PS) %显示出来title('输入的彩色JPG图像')imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %将彩色图片灰度化并保存PS=rgb2gray(PS); %灰度化后的数据存入数组%二,绘制直方图[m,n]=size(PS); %测量图像尺寸参数GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置endfigure,bar(0:255,GP,'g') %绘制直方图title('原图像直方图')xlabel('灰度值')ylabel('出现概率')%三,直方图均衡化S1=zeros(1,256);for i=1:256for j=1:iS1(i)=GP(j)+S1(i); %计算SkendendS2=round((S1*256)+0.5); %将Sk归到相近级的灰度 for i=1:256GPeq(i)=sum(GP(find(S2==i))); %计算现有每个灰度级出现的概率 end figure,bar(0:255,GPeq,'b') %显示均衡化后的直方图 title('均衡化后的直方图') xlabel('灰度值')ylabel('出现概率')用系统函数均衡后结果:均值后:1、自己设计程序实现图像的直方图均衡;自己设计的均值代码:2、 clear,close all;3、 I=imread('image.jpg');4、 subplot(2,2,1);5、 imshow(I);6、 title('原始图像');7、 PS=rgb2gray(I);8、 [m,n]=size(I);9、 GP=zeros(1,256); 10、11、12、13、14、15、16、17、18、19、20、21、22、23、 for k=0:255 GP(k+1)=length(find(I==k))/(m*n); end subplot(2,2,2)bar(0:255,GP,'g') title('原图像直方图') xlabel('灰度值') ylabel('出现概率')N=zeros(1,256); for i=1:256 for j=1:i N(i)=GP(j)+N(i); end end24、25、26、27、28、29、30、31、32、33、34、35、36、37、38、39、 S2=round((N*256)+0.5); for i=1:256 GPeq(i)=sum(GP(find(S2==i))); end subplot(2,2,3) bar(0:255,GPeq,'b') title('均衡化后直方图') xlabel('灰度值') ylabel('出现概率') X=PS; for i=0:255 X(find(PS==i))=S2(i+1); end subplot(2,2,4) imshow(X); title('均衡化后图像'); 画出均衡后的图像直方图;。
matlab的histeq函数MATLAB的histeq函数是一种用于图像处理的直方图均衡化函数。
该函数能够将图像的像素值进行均衡化,使得图像的整体亮度变化更加平滑、细腻。
在图像处理、计算机视觉、数字图像处理等领域中,histeq函数是非常重要的一种函数。
在使用histeq函数时,用户需要先将指定图像读取到MATLAB中。
可以通过imread函数将指定图片读取到MATLAB中,代码如下:img=imread('image.jpg');其中,’image.jpg‘指定了图片的路径和名称,使用时需要自定义。
读取图片后,用户可以对图像进行一系列操作,如灰度化处理、自适应对比度增强等。
这里介绍直方图均衡化的操作。
直方图均衡化的过程可以使图像中的灰度值分布呈现更加均匀的状态,因而可以增强图像的亮度和对比度。
直方图均衡化的原理非常简单,主要是通过将像素的灰度值进行均衡化处理,使像素的灰度值分布更加平衡。
在MATLAB中实现直方图均衡化的方法是使用histeq函数,该函数的基本语法如下:out=histeq(in)其中,in是待处理的输入图片,out是经过处理的输出图片。
histeq函数的使用方法非常简单,只需要输入待处理的图片即可。
不过,用户也可以通过一系列可选参数来对函数进行更细致的控制,使其具有更好的适用性。
histeq函数支持的可选参数主要包括以下几个方面:1、灰度级别的调整可以通过在函数中添加灰度级别参数,来调整输出图片的灰度级别。
在MATLAB中,默认的灰度级别是256,该参数可以通过在函数中添加histeq(in,n)来设置。
在该函数中,n是灰度级别的数量。
可以通过将n设为256来保持默认状态,或调整成更小的数字,使输出图片的色调更加细腻。
2、调整灰度分布在histeq函数中,可以通过调整灰度分布参数来控制输出图片的灰度值分布。
该参数可以使用一个由256个元素组成的向量表示。
该向量中的每一个元素对应一个灰度值,每个元素表示输出图片中该灰度值相应的像素数占比。
目录
1、引言 (2)
2、直方图基础 (3)
3、直方图均衡化 (3)
3.1 直方图均衡化的概念 (3)
3.2 直方图均衡化理论 (4)
3.3 Matlab 实现 (4)
4、结论 (7)
致谢 (7)
参考文献 (7)
图像增强处理
—直方图均衡化的Matlab 实现摘要:为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,通常采用直方图均衡化及直方图规定化两种变换,此文中探讨了直方图的理论基础,直方图均衡化的概念及理论,以Matlab为平台,对某地区遥感TM单波段遥感影像进行直方图均衡化,并给出了具体程序、仿真结果图像、直方图及变换函数。
实验结果表明,原来偏暗的且对比度较低的图像经过直方图均衡化后图像的对比度及平均亮度明显提高,直方图均衡化处理能有效改善灰度图像的对比度差和灰度动态范围。
关键词:图像增强直方图均衡化 Matlab
1、引言
图像增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或尖锐化。
当一幅图像曝光不足或过度,造成对比度过小或过大而不能显示具体细节,通过增加这些细节的动态范围改善图像的视觉效果。
图像增强可以突出图像中所感兴趣的特征信息,改善图像的主观视觉质量,提高图像的可懂度。
增强的首要目标是处理图像,使其比原始图像更适合于特定应用。
图像增强的方法分为两大类:空间域方法和频域方法。
“空间域”一词是指图像平面本身,这类方法是以对图像的像素直接处理为基础的。
“频域”处理技术是以修改图像的傅氏变换为基础的。
一般说来,原始遥感数据的灰度值范围都比较窄,这个范围通常比显示器的显示范围小的多。
增强处理可将其灰度范围拉伸到0-255 的灰度级之间来显示,从而使图像对比度提高,质量改善。
增强主要以图像的灰度直方图最为分析处理的基础。
直方图均衡化能够增强整个图像的对比度,提高图像的辨析程度,算法简单,增强效果好。
本文主要讨论了空间域的直方图均衡化增强,并用Matlab 进行实验验证。
2、直方图基础
1、灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像元的个数。
确定图像像
元的灰度值范围,以适当的灰度间隔为单位将其划分为若干等级,以横轴表示灰度级,以纵轴表示每一灰度级具有的像元数或该像元数占总像元数的比例值,做出的条形统计图即为灰度直方图。
2、设r 和S 分别表示归一化了的原图像灰度和经直方图修正后的图像灰度。
即 0≤r,S ≤1。
对[0,1]区间内的任一个r 值都可产生一个S 值,且 S=T(r),T(r )为变换函数。
T(r)满足下列条件:
a. 在0≤r≤1 区间内是单值单调增加函数;
b. 对于0≤r≤1,有0≤T(r)≤1。
条件a 保证灰度级从黑到白的次序,而条件b 确保映射后的像素灰度在允许的范围内。
从S 到r 的反变换关系为 r= T-1(S),T-1(S)对r同样满足上述条件。
由概率论知,若Pr(r)和变换函数S=T(r)已知,T-1(S)是单值单调增加函数,则变换后的概率密度函数Ps(S)如下式所示:
P s(S)=[P r(r)dr/dS]r=T-1(S)
3、直方图修正从本质上说就是从T(r)入手,调整图像的概率密度函数从而改变图像的特征。
一般来说,如果图像的直方图轮廓线越接近正态分布,则说明图像的亮度接近随机分布,适合用统计方法处理,这样的图像一般反差适中;如果直方图峰值位置偏向灰度值大的一边,图像偏亮;如果峰值位置偏向灰度值小的一边,图像偏暗;峰值变化过陡、过窄,则说明图像的灰度值过于集中,后3 种情况均存在反差小、质量差的问题。
直方图分析是图像分析的基本方法,通过有目的地改变直方图形态可改善图像的质量。
3、直方图均衡化
大多数原始的遥感图像由于其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对比度较低。
为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,通常采用直方图均衡化及直方图规定化两种变换。
本文主要介绍直方图均衡化并进行实验。
3.1 直方图均衡化的概念
直方图均衡化又称直方图平坦化,实质上是对图像进行非线性拉伸,重新分配图像象元值,使一定灰度范围内象元值的数量大致相等。
这样,原来直方图中间的峰顶部分对比度得到增强,而两侧的谷底部分对比度降低,输出图像的直方图是一个较平的分段直方图:如果输出数据分段值较小的话,会产生粗略分类的视觉效果。
3.2 直方图均衡化理论
假设灰度级为归一化至范围[0,1]内的连续量,并令Pr (r)表示某给定图像中的灰度级的概率密度函数(PDF),其下标用来区分输入图像和输出图像的PDF。
假设我们对输入灰度级执行如下变换,得到(处理后的)输出灰度级s:
S=T(r)= r
0P r (w)dw
式中w 是积分的哑变量。
可以看出,输出灰度级的概率密度函数是均匀的,即
a.当0≤s ≤1 时,P s (s)=1
b.当s 为其他时,P s (s)=0
换言之,前述变换生成一幅图像,该图像的灰度级较为均衡化,且覆盖了整个范围[0,1]。
灰度级均衡化处理的最终结果是一幅扩展了动态范围的图像,它具有较高的对比度。
该变换函数只不过是一个累积分布函数(CDF )。
3.3 Matlab 实现
采用某地区TM 影像的某一波段影像进行直方图均衡化实验,在Matlab 环境下实现增强的目的。
1)输入以下语句,显示灰度原图像,如图1:
>> I=imread('D:\My Documents\作业\图像处理\picture\1.png');
>>imshow(I)
图1 原图像
2)输入以下语句显示直方图,如图2所示:
>>clc,close,clear ;
>> figure,imhist(I)
>> ylim('auto')
原图像直方图
由图1 显示的图像及其直方图(图2)可知这幅图像最为突出的特点是较暗且动态范围较低。
直方图的宽度相对于整个灰度范围来说非常狭窄,图像质量比较差,地物可分性较差;在Matlab 环境下进行直方图的均衡化,对图像的亮度范围进行拉伸,以提高对比度。
3)输入语句,进行直方图均衡化,如图3所示:
>> J=histeq(f,256);
>>figure,imshow(J)
图3 直方图均衡化后图像
4)均衡化后的图像的直方图,如图4
>>figure,imhist(J)
>> ylim('auto')
图4 直方图均衡化后的直方图
经过直方图均衡化,图像的对比度及平均亮度明显提高,直方图在整个亮度标度上显著扩展,图像质量提高。
5)下面使用函数 cumsum来实现变换功能,输入语句:
>> hnorm=imhist(I)./numel(I);
>> cdf=cumsum(hnorm);
>> x=linspace(0,1,256);
>> plot(x,cdf)
>> axis([0 1 0 1])
>> set(gca,'xtick',0:.2:1)
>> set(gca,'ytick',0:.2:1)
>> xlabel('输入亮度值','fontsize',20)
>> ylabel('输出亮度值','fontsize',20)
>> text(0.18,0.5,'变换函数','fontsize',20)
图5 变换函数
其中横轴表示输入亮度值,纵轴表示输出亮度值。
由图 5 显示的变换函数能够直观地分辨出该变换函数将较窄的输入灰度级范围变换到了输出图像的整个亮度范围内。
对比图 1 和图3 发现:经过直方图均衡化,图像的对比度明显增强,地物的轮廓变的更清晰,因此,直方图均衡化有助于改善对比度过低引起的遥感图像模糊。
4、结论
直方图均衡化是图像增强技术的基本方法,本文分析了这种处理方法的基本理论,并用Matlab 进行实验,结果表明,直方图均衡化在一定程度上改善了图像的对比度差和灰度动态范围,增强了图像的可读性,提高了地物的可分性,有利于进行遥感图像的目视解译。
该算法简单,是一种行之有效的图像增强算法。
致谢
在论文完成之时,首先向我的老师张俊生致以崇高的敬意和衷心的感谢,没有张老师的严格要求和认真教导我的论文就不可能按时按质按量完成,此次论文我从题目的确定到章节结构设计,结合网上资料和自己平时所积累的知识逐字斟酌以及最后的精心的排版,都离不开老师的教诲。
我相信今后我会有更大的进步。
再次向我的老师致以最诚挚的谢意!
同时,也感谢培养我的母校和所有的老师及同学!
参考文献
[1]章毓晋.图像处理和分析教程[M]. 北京:人民邮电出版社,2009.11
[2]王家文,曹宇.图形图像处理[M]. 北京:国防工业出版社,2004.5。