直方图直方图均衡化增强共21页文档
- 格式:ppt
- 大小:663.00 KB
- 文档页数:21
图像增强——————直方图均衡化摘要图像增强是指按特定的需要突出一幅图像的某些信息,削弱或消除不需要信息的处理方法。
处理的结果使图像更适合于人的视觉特性或机器的识别系统。
本文主要采用直方图均衡化、中值滤波的方法对图像进行处理,通过对处理结果进行比较,从而加深对图像增强的理解及应用。
一、图像增强在获取图像的过程中,由于多种因素的影响导致图像无法达到令人满意的视觉效果。
对原始图像做一些改善,从而实现人眼观察或者机器自动分析、识别的目的的行为,就叫做图像增强。
图像增强的主要内容⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎧⎪⎪⎪⎩⎪⎪⎪⎨⎧⎪⎪⎩⎪⎪⎨⎧⎪⎩⎪⎨⎧⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧⎩⎨⎧⎪⎪⎩⎪⎪⎨⎧⎩⎨⎧代数运算彩色变换增强彩色平衡假彩色增强常规处理彩色图像增强伪彩色增强彩色增强同态滤波增强低通滤波高通滤波频率域图像锐化图像平滑局部运算局部统计法规定化均衡化直方图修正法灰度变换点运算空间域图像增强二、直方图均衡化1.直方图均衡化是通过累积函数对灰度值进行调整以实现对比度的增强,具体地说就是把给定图像的直方图分布改变成近似均匀分布的直方图。
2.直方图均衡化的过程如下:①计算原图像的灰度直方图;②计算原图像的灰度累积分布函数,进一步求出灰度转换表; ③根据灰度转换表,将原图像各灰度级映射为新的灰度级。
3.直方图均衡化的优点:扩张了像素值的动态范围。
直方图均衡化后,图像的概率密度函数近似服从均匀分布,灰度几乎是均匀的分布在整个范围内,图像明暗分明,对比度很大,图像比较清晰明亮,很好的改善了原始图的视觉效果。
2.1原理及计算过程先讨论连续图像的均衡化问题。
设变量r 和s 代表原图像灰度和经直方图修正后的的图像灰度。
在图像中,像素的灰度级可作归一化处理,这样r,s 的值将限定在下述范围之内:0≤r,s ≤1,r=0代表黑,r=1代表白,可以对[0,1]区间内的任一个值进行如下变换:s=T(r)变换函数T 应满足下列条件:(1)在0≤r ≤1区间内T[r]单值单调增加; (2)对于0≤r ≤1,有0≤s ≤1。
利用直方图均衡化和直方图规定化对图像进行增强利用直方图均衡化和直方图规定化对图像进行增强4.1 利用直方图均衡化对图像进行增强通过灰度变换将一幅图像转换为另一幅具有均衡直方图的图像,即在一定灰度范围内具有相同的象素点数的图像的过程。
其“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。
直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。
主要缺点:1、变换后图像的灰度级减少,某些细节消失;2、某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。
算法如下:为讨论方便,以r 和s 分别表示归一化了的原图像灰度和经直方图修正后的图像灰度。
即1,0≤≤s r在[0,1]内设有变换S=T(r)且该函数单调递增,1)(0≤≤r T ,于是有反变换)(1s T r -=有概率论知,如果已知随即变量r 的概率密度)(r p r ,而随机变量s 是r 的函数。
则s 的概率密度)(s p s 可以有)(r p r 求出。
[])()()()()(1s T ds d r p ds dr r p dr r p ds d s p r r r r s -∞-===?从上式可以看出通过变换函数)(r T 可以控制图像灰度级的概率密度函数,从而改变图像灰度层次,这就是直方图修正技术的基础。
因为归一化规定 1)(=s p s有1式有 dr r p ds r )(=两边积分得 dr r p r T s rr )()(0?==上式就是所求得的变换函数。
它表明当变换函数)(r T 是原图像直方图累积分布函数时,能达到直方图均衡化的目的。
离散形式可表示为:∑∑=====ki i k i i r k k n n r p r T s 00)()(可见均衡后的各像素的灰度值k s 可直接由原图像的直方图算出。
图像增强算法(直⽅图均衡化、拉普拉斯、Log、伽马变换)⼀、图像增强算法原理图像增强算法常见于对图像的亮度、对⽐度、饱和度、⾊调等进⾏调节,增加其清晰度,减少噪点等。
图像增强往往经过多个算法的组合,完成上述功能,⽐如图像去燥等同于低通滤波器,增加清晰度则为⾼通滤波器,当然增强⼀副图像是为最后获取图像有⽤信息服务为主。
⼀般的算法流程可为:图像去燥、增加清晰度(对⽐度)、灰度化或者获取图像边缘特征或者对图像进⾏卷积、⼆值化等,上述四个步骤往往可以通过不同的步骤进⾏实现,后续将针对此⽅⾯内容进⾏专题实验,列举其应⽤场景和处理特点。
本⽂章是⼀篇综合性⽂章,算是⼀篇抛砖引⽟的⽂章,有均衡化、提⾼对⽐度、降低对⽐度的算法。
1.1 基于直⽅图均衡化的图像增强图像对⽐度增强的⽅法可以分为两种:直接对⽐度增强⽅法,间接对⽐度增强⽅法。
直⽅图拉伸和直⽅图均衡化是常见的间接对⽐度增强⽅法。
直⽅图拉伸是利⽤对⽐度拉伸对直⽅图进⾏调整,扩⼤前景和背景灰度的差别,这种⽅法可以通过线性和⾮线性的⽅法来实现,其中ps中就是利⽤此⽅法提⾼对⽐度;直⽅图均衡化则是利⽤累积函数对灰度值进⾏调整,实现对⽐度的增强。
直⽅图均衡化处理原理:将原始图像的灰度图从⽐较集中的某个灰度区间均匀分布在整个灰度空间中,实现对图像的⾮线性拉伸,重新分配图像像素值。
算法应⽤场景:1、算法的本质是重新分布图像的像素值,增加了许多局部的对⽐度,整体的对⽐度没有进⾏太⼤改变,所以应⽤图像为图像有⽤数据的对⽐度相近是,例如:X光图像,可以将曝光过度或曝光不⾜照⽚进⾏更好的显⽰,或者是背景及前景太亮或太暗的图像⾮常有⽤。
2、算法当然也有缺点,具体表现为:变换后的图像灰度级减少,某些细节减少;某些图像有⾼峰值,则处理后对⽐度不⾃然的过分增强。
算法实现特点:1、均衡化过程:直⽅图均衡化保证在图像像素映射过程中原来的⼤⼩关系保持不变,即较亮的区域依旧较亮,较暗的依旧较暗,只是对⽐度增加,不能明暗颠倒;保证像素映射函数的值域在0和255之间。
程序课程设计报告2012年 7 月 9 日图像增强专业:*****班级:*****题目:图像增强小组成员: ***指导教师:***时间:2012年6月-7月摘要:图像增强是图像处理的一个重要分支, 它对图像整体或局部特征能有效地改善;直方图是图像处理中最重要的基本概念之一,它能有效地用于图像增强。
本文主要探讨了直方图的理论基础,直方图均衡化的概念及理论,同时用MATLAB语言加以实现, 给出标准的数字图像在各种处理前与处理后的对照图像及直方图。
实验结果表明, 用直方图均衡化的算法, 能有效改善灰度图像的对比度差和灰度动态范围,使处理后的图像视觉效果得以改善。
关键词:图像增强直方图均衡化Abstract: Image enhancement is an important branch of image processing, its image as a whole or partial characteristics can effectively improve. Histogram is one of the most important basic concepts of image processing, it can effectively be used for image enhancement. This paper mainly discusses the theoretical basis of the histogram, histogram equalization, the concepts and theories. We use the MATLAB language and give the standard digital images in various treatment and processing of the control image and histogram. The experimental results show that the histogram equalization algorithm can effectively improve the poor contrast and gray scale dynamic range of the grayscale image, the visual effects of the processed image can be improved. Keywords: Image enhancement Histogram Equalization1 引言图像增强是图像处理中的基本内容之一,在图像处理中占有非常重要的地位。
XXXXXXXX大学(数字图形处理)实验报告实验名称直方图均衡化实现图像增强实验时间年月日专业姓名学号预习操作座位号教师签名总评一、实验目的:掌握直方图均衡化的原理。
掌握直方图均衡化实现图像增强的实现方法。
二、实验原理:直方图是统计像数统计图,如设一张灰度图或一个通道,值0~255。
直方图如果按。
255个区分的话。
统计出来的就是,值为。
0的有几个像数,值为1的有机个像数,这样的一张表。
那么均衡化的意思就是。
这样表要均衡。
不直不于。
0有上万个像数,1只有1 个。
正常,直方图本身可以用小于255个区。
比如10个,那么这样相对图中的点就有一个映射,这时值0-9统计落在第一个区,值为10-19落第二个区。
这样的结果就会出来,10个区,10个统计数区。
这时。
你均衡就是让10区的统计数据都不会差很多。
表现出来的就是一张图上的颜色分布相对均衡。
总的来说直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。
三、实验内容:利用直方图均衡化实现图像增强。
在资源编辑器中,在主菜单下添加一名为“直方图均衡化”的菜单步骤如前面实验。
实验代码如下:if(m_DibHead->biBitCount!=8){MessageBox("当前版本仅支持256色位图的操作!","系统提示!",MB_ICONINFORMA TION|MB_OK);return;}zftjh(m_Image,m_DibHead->biWidth,m_DibHead->biHeight);Invalidate();其中函数zftjh的实现代码如下:zftjh(unsigned char *lpDib,long lWidth,long lHeight){unsigned char *lpsrc;long lresult(0);long i,j;unsigned char bMap[256];long lCount[256];for(i=0;i<256;i++)lCount[i]=0;for(i=0;i<lHeight;i++)for(j=0;j<lWidth;j++){lpsrc=lpDib+i*lWidth+j;lCount[*lpsrc]++;}for(i=0;i<256;i++){lresult=0;for(j=0;j<=i;j++)lresult+=lCount[j];bMap[i]=(lresult*255)/lHeight/lWidth;}for(i=0;i<lHeight;i++)for(j=0;j<lWidth;j++){lpsrc=lpDib+i*lWidth+j;*lpsrc=bMap[*lpsrc];}}原图为下图的左边部分,均值化以后的图为右边的部分:。
BI YE SHE JI 利用直方图均衡化进行图像的增强院(系):计算机科学与工程专业:计算机科学与技术班级:学生:学号:指导教师:任务书1.毕业设计(论文)题目:利用直方图均衡化进行图像的增强2.题目背景和意义:图像增强是数字图像处理技术中最基本的内容之一,是图像预处理方法之一,图像预处理是相对于图像识别、图像理解而言的一种前期处理,直方图均衡化就是把一已知灰度概率分布的图像经过一种变换,使之演变成一副具有均匀灰度概率分布的新图像。
清晰柔和的图像的直方图分布比较均匀。
为了使图像变得清晰,通常可以通过变换使图像的灰度动态范围增大,并且让灰度频率较小的灰度级经变换后,其频率变得大一些,使变换后的图像灰度直方图在较大的动态范围内趋于均化。
直方图均衡化处理是一种修改图像直方图的方法,它通过对直方图进行均衡化修正,可使图像的灰度间距增大或灰度均匀分布、增大反差,使图像的细节变得清晰。
本课题就是利用直方图均衡化进行图像的增强。
3.设计(论文)的主要内容(理工科含技术指标):主要内容有:(1)了解、熟悉并掌握图像直方图、图像增强的概念。
(2)给一副图像,能够得到图像的直方图,并能够对图像进行直方图的均衡化,进而对图像进行增强,掌握其原理并实现其过程。
(3)完成不同色彩空间下均衡化效果的优劣对比,给出一个较好的均衡化算法。
(4)完成1.5万字毕业论文,完成与课题相关的外文资料的翻译。
4.设计的基本要求及进度安排(含起始时间、设计地点):本次课题从2012年12月开始,在校内完成,具体的进度安排如下:第1~3周:查阅书籍资料,学习相关软件,准备开题报告。
第4周:分析设计任务,设计总体方案,研究算法。
第5~12周:模块设计、完成3000个单词以上的相关外文资料翻译;中期总结。
第13~15周:模块设计、系统调试。
第16~17周:系统测试、撰写毕业论文第18周:对论文排版和打印,制光盘;论文答辩。
5.毕业设计(论文)的工作量要求① 实验(时数)*或实习(天数):② 图纸(幅面和张数)*:③ 其他要求:指导教师签名:年月日学生签名:年月日系(教研室)主任审批:年月日说明:1本表一式二份,一份由学生装订入附件册,一份教师自留。
直⽅图均衡化今天学习了下直⽅图均衡化的原理。
先来看看维基百科上的⼀个例⼦: 从这张未经处理的灰度图可以看出,其灰度集中在⾮常⼩的⼀个范围内。
这就导致了图⽚的强弱对⽐不强烈。
直⽅图均衡化的⽬的,就是使得灰度分布尽可能平均地“填满”整个灰度空间(0~255),就是做到直⽅图的上界是⼀条平⾏于X轴的直线(理想化)。
有了这个⽬标之后,开始推导。
这个推导过程从连续函数出发。
第⼀步:建⽴⼀个从灰度r到s的映射s=T(r)第⼆步:将均衡化后的直⽅图的分布H B 表⽰成原图灰度分布H A 的函数 --> H B(s)=H A(r)/T(r),原理见下。
第三步:理想化的灰度分母应为常数,得T(r)=k*H A(r),不妨另:k=C/A o .(A o为所有像素数)第四步:两边同时积分(0->L),由密度函数的归⼀化条件得 : s=T(L)=C,因为s取值也是0->L,所以C=L。
第五步:把连续函数写成离散形式以适应计算机的处理。
(写出来⼤概就是这样,⾃⼰也能理解,但是总是感觉怪怪的) 可以看出,直⽅图均衡化只是将直⽅图进⾏了伸缩变换,或者说是⼀个搬移。
将变化律低的部分挤压,将变化率⾼的部分拉伸,得到⼀个两边变化陡峭中间平滑的灰度分布(单峰的话就很明显)。
可以看看维基百科上直⽅图均衡化之后的例⼦: 通过观察可以发现,由于中间部分灰度被拉伸了,灰度的取值变得不是很“连续”。
这个就是直⽅图均衡化的⼀个缺点吧。
(其实是离散的问题)———————————————————————————————————————————————————————————————————————————————闲着⽆聊搞了个最简单的直⽅图均衡化⼩程序,⼤家可以⾃⼰拿去试⼀下。
接下来的计划是做⾃适应直⽅图均衡化和对⽐对限制的直⽅图均衡化。
代码:#include <iostream>#include <string>#include <io.h>#include <opencv2/opencv.hpp>#include<math.h>#include<cv.h>using namespace std;using namespace cv;void main(int argc, char** argv){//变量定义//图⽚类IplImage *src , *dst;IplImage *histframesrc , *histframedst;CvSize size;//直⽅图类CvHistogram *histo_src , *histo_dst;int scale;float histmin,histmax;int bins=256;float range[]={0,255};float *ranges[]={range};//杂家int i,j,k,m,n; //循环变量……⽽已float s_r[256]; //S(r)映射函数//---------------------------------------------------------------src=cvLoadImage("11.jpg",0); //图⽚变量初始化cvShowImage("src",src);size=cvGetSize(src);dst=cvCreateImage(size,8,1);histo_src=cvCreateHist(1,&bins,CV_HIST_ARRAY,ranges); //直⽅图初始化histo_dst=cvCreateHist(1,&bins,CV_HIST_ARRAY,ranges);cvCalcHist(&src,histo_src,0,0); //计算直⽅图cvNormalizeHist(histo_src,1); //归⼀//累加,求S(r)映射s_r[0]=cvQueryHistValue_1D(histo_src,0);for(i=1;i<=255;i++){s_r[i]=s_r[i-1]+cvQueryHistValue_1D(histo_src,i);}//当然要把是S(r)归⼀到255啦for(i=0;i<=255;i++){s_r[i]=cvRound(s_r[i]*255);}//遍历图像并由sr关系进⾏直⽅图均衡化啦CvScalar s;for(m=0;m<size.height;m++){for(n=0;n<size.width;n++){s=cvGet2D(src,m,n);i=s.val[0];i=s_r[i];s.val[0]=i;cvSet2D(dst,m,n,s);}}//计算dst直⽅图cvCalcHist(&dst,histo_dst,0,0);cvNormalizeHist(histo_dst,1);//SHOWOFF⼀下啦cvShowImage("dst",dst);scale=1;//画出src和dst的直⽅图histframesrc=cvCreateImage( cvSize(bins*scale,256),8,1);histframedst=cvCreateImage( cvSize(bins*scale,256),8,1);//src的cvGetMinMaxHistValue(histo_src , &histmin , &histmax , 0 , 0 );for(int i = 0; i < bins; i++){/** 获得直⽅图中的统计次数,计算显⽰在图像中的⾼度 */float bin_val = cvGetReal1D(histo_src->bins,i);bin_val=bin_val*255/histmax;s.val[0]=cvRound(bin_val);cvRectangle(histframesrc,cvPoint(i*scale,256),cvPoint((i+1)*scale,256-bin_val),s,-1,8,0); }cvShowImage("src's hisogram",histframesrc);//dst的cvGetMinMaxHistValue(histo_dst , &histmin , &histmax , 0 , 0 );for(int i = 0; i < bins; i++){/** 获得直⽅图中的统计次数,计算显⽰在图像中的⾼度 */float bin_val = cvGetReal1D(histo_dst->bins,i);bin_val=bin_val*255/histmax;cout<<bin_val<<"\t";s.val[0]=cvRound(bin_val);cvRectangle(histframedst,cvPoint(i*scale,256),cvPoint((i+1)*scale,256-bin_val),s,-1,8,0); }cvShowImage("dst's hisogram",histframedst);//输出sr试⼀下for(i=0;i<=255;i++)cout<<s_r[i]<<"\n";for(;;)if(cvWaitKey(0)==27)break;}结果:(直⽅图变得平缓了但是中间部分变得稀疏了)。
基于直方图均衡化图像增强算法分析目录1. 前言 (1)2. 理论分析 (2)2.1 直方图修正技术的基础 (2)2.2 直方图的均衡化 (3)2.3 直方图均衡化的算法步骤 (4)3. 仿真实验与结果 (5)4. 结论 (9)参考文献 (9)1. 前言在实际应用中,无论采用何种输入装置采集的图像,由于光照、噪声等原因,图像的质量往往不能令人满意。
例如,检测对象物的边缘过于模糊;在比较满意的一幅图像上发现多了一些不知来源的黑点或白点;图像的失真、变形等等。
所以图像往往需要采取一些手段进行改善以求达到较好的效果。
图像增强技术正是在此基础上提出的。
图像增强是图像分析与处理的一个重要的预处理过程,其主要有两个目的:一是运用一系列技术手段改善图像的视觉效果,提高图像的清晰度;二是将图像转化成一种更适合于人或计算机进行分析处理的形式。
即改善图像质量是图像增强的根本目的。
图像增强的意义一般可以理解为:按需要进行适当的变换,对图像的某些特征,如边缘、轮廓、对比度进行强调或锐化,突出某些有用的信息,去除或消弱无用的信息以便于显示、观察或进一步分析和处理。
图像增强技术是一类基本的图像处理技术,是指有选择地突出图像中感兴趣的特征或者抑制图像中某些不需要的特征,其目的是使处理后的图像更适合于人的视觉特性或机器的识别系统,包括图像的轮廓线或者纹理加强、图像去噪、对比度增强等。
因此图像增强处理是图像分析和图像理解的前提和基础。
在图像的获取过程中,特别是对于多媒体监控系统采集的图像,由于监控场景光线照射复杂、拍摄背景也比较复杂等环境因素的影响。
加之摄像设备、传感器等因素引入的噪声,使监控图像在一定程度上存在对比度差、灰度分布范围窄、图像分辨率下降。
因此,为得到一幅清晰的图像必须进行增强处理。
传统的图像增强算法通常是基于整幅图像的统计量,这样在计算整幅图像的变换时,图像中的低频信息、高频信息以及含有的噪声,同时进行了变换,因而在增强图像的同时增强了噪声,导致信息熵下降,给监控图像的分析和后期处理带来了困难。
实验三 基于直方图均衡化的图像增强一.实验目的1.了解空间域图像增强的各种方法(点处理、掩模处理);2.掌握采用直方图均衡化进行图像增强的方法;3. 使用邻域平均法编写程序实现图像增强,进一步掌握掩模法及其改进(加门限法)消除噪声的原理;二.实验设备1.PC 机一台;2.软件matlab ;三.实验内容及步骤对如图3.1所示的两幅128×128、256级灰度的数字图像fing_128.img 和cell_128.img 进行如下处理:(1)对原图像进行直方图均衡化处理,同屏显示处理前后图像及其直方图,比较异同,并回答为什么数字图像均衡化后其直方图并非完全均匀分布。
(2)对原图像加入点噪声,用4-邻域平均法平滑加噪声图像(图像四周边界不处理,下同),同屏显示原图像、加噪声图像和处理后的图像。
① 不加门限;② 加门限),(21n m f T =,(其中∑∑=i jj i f N n m f ),(1),(2) 实验程序及结果:(1)原图直方图均衡化处理:《1》Fing_128图像的处理前后图像及其直方图:程序:figure(1);fid=fopen('F:\数字图象处理\数字图像处理\ fing_128.img','r');data1=(fread(fid,[128,128],'uint8'))';subplot(2,2,1)data2=uint8(data1);imshow(data2);subplot(2,2,2);imhist(data2);a=imadjust(data2,[0,0.5]);subplot(2,2,4);imhist(a);subplot(2,2,3);imshow(a,256); %显示均衡化图象,256可缺省《2》Cell_128图象的处理前后图像及其直方图:数字图象均衡化后,其直方图并非完全均匀分布,这是因为图象的象素个数和灰度等级均为离散数值;而且均衡化使灰度级并归,因此,均衡化后,其直方图并非完全均匀分布。