数字图像处理直方图均衡化26页PPT
数字图像处理实验报告直方图均衡化

数字图像处理实验报告直⽅图均衡化课程设计课程名称数字图像处理题⽬名称直⽅图均衡化学⽣学院信息⼯程学院专业班级 08级电信2班学号 3208002664 学⽣姓名陈慕仪指导教师曹江中2011年7 ⽉ 1 ⽇设计题⽬:直⽅图均衡化1、直⽅图的理论基础:(1)直⽅图概念:灰度直⽅图表⽰图像中每种灰度出现的频率。
(2)直⽅图的作⽤:反映⼀幅图像的灰度分布特性(3)直⽅图的计算:式中:n k 为图像中出现r k 级灰度的像素数,n 是图像像素总数,⽽n k /n 即为频数。
2、设计⽬的:产⽣⼀幅灰度级分布具有均匀概率密度的图像,扩展像素取值的动态范围,达到了图象增强的⽬的。
3、直⽅图均衡化的效果:1)变换后直⽅图趋向平坦,灰级减少,灰度合并。
2)原始象含有象素数多的⼏个灰级间隔被拉⼤了,压缩的只是象素数少的⼏个灰度级,实际视觉能够接收的信息量⼤⼤地增强了,增加了图象的反差。
同时,也增加了图象的可视粒度。
4、离散情况下的直⽅图均衡化的算法:A 、列出原始图像的灰度级B 、统计各灰度级的像素数⽬C 、计算原始图像直⽅图各灰度级的频数D 、计算累积分布函数F 、应⽤以下公式计算映射后的输出图像的灰度级,P为输出图像灰度级的个数,其中INT 为取整符号:G 、⽤的映射关系修改原始图像的灰度级,从⽽获得直⽅图近似为均匀分布的输出图像。
3、源程序代码// cqxhistView.cpp : implementation of the CCqxhistView class #include "stdafx.h" #include "cqxhist.h"#include "cqxhistDoc.h" #include "cqxhistView.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__; #endif///////////////////////////////////////////////////////////////////////////// // CCqxhistViewIMPLEMENT_DYNCREATE(CCqxhistView, CView)BEGIN_MESSAGE_MAP(CCqxhistView, CView)1,,1,0,-=L j f j 1,,1,0,-=L j n j 1,,1,0,/)(-==L j n n f P j j f 1,,,1,0,)()(0-==∑=L k j f P f C k j jf]5.0)()[(min min max ++-=g f C g g INT g i nn r p kk =)(1,,2,1,010-=≤≤l k r k//{{AFX_MSG_MAP(CCqxhistView)ON_COMMAND(ID_OPEN_IMAGE, OnOpenImage)ON_COMMAND(ID_HIST_IMAGE, OnHistImage)//}}AFX_MSG_MAP// Standard printing commandsON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)END_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////// // CCqxhistView construction/destruction CCqxhistView::CCqxhistView(){// TODO: add construction code here}CCqxhistView::~CCqxhistView(){}BOOL CCqxhistView::PreCreateWindow(CREATESTRUCT& cs){// TODO: Modify the Window class or styles here by modifying// the CREATESTRUCT csreturn CView::PreCreateWindow(cs);}///////////////////////////////////////////////////////////////////////////// // CCqxhistView drawingvoid CCqxhistView::OnDraw(CDC* pDC){CCqxhistDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereif(m_dib.m_bLoaded==true) //判断是否加载图像{//获取图像宽和⾼int nw=m_dib.GetDIBWidth();int nh=m_dib.GetDIBHeight();// 显⽰图像(具体的参数见CDIB类的该函数说明)m_dib.ShowDIB(pDC,10,10,nw,nh,m_dib.m_pDIBData,m_dib.m_pBMI);m_dib.ShowDIB(pDC,400,10,nw,nh,m_dib.m_pDumpDIBData,m_dib.m_pBMI); } if(m_bHist==true){//绘制原图像的直⽅图CString str;int nh=m_dib.GetDIBHeight();int i;// 画坐标轴// 绘制坐标轴pDC->MoveTo(410,nh+20); //(410,nh+20 )是直⽅图的左上⾓坐标// 垂直轴pDC->LineTo(410,nh+200);//(410,nh+200 )是直⽅图的左下⾓坐标// ⽔平轴pDC->LineTo(710,nh+200);//(710,nh+200 )是直⽅图的右下⾓坐标// 写X轴刻度值str.Format("0");pDC->TextOut(410, nh+200+10, str);str.Format("50");pDC->TextOut(460, nh+200+10, str); str.Format("100");pDC->TextOut(510, nh+200+10, str); str.Format("150");pDC->TextOut(560, nh+200+10, str); str.Format("200");pDC->TextOut(610, nh+200+10, str); str.Format("255");pDC->TextOut(665, nh+200+10, str); // 绘制X轴刻度for ( i = 0; i < 256; i += 25){if ((i & 1) == 0){// 10的倍数pDC->MoveTo(i + 10, nh+200-2); pDC->LineTo(i + 10, nh+200+2);}else{// 10的倍数pDC->MoveTo(i + 10, nh+200-2); pDC->LineTo(i + 10, nh+200+2);}}// 绘制X轴箭头pDC->MoveTo(705,nh+200-5); pDC->LineTo(710,nh+200);pDC->LineTo(705,nh+200+5);// 绘制y轴箭头pDC->MoveTo(410,nh+20);pDC->LineTo(405,nh+20+5);pDC->MoveTo(410,nh+20);pDC->LineTo(415,nh+20+5);int max=0;for(i=0;i<256;i++)if(m_yuan[i]>max)max=m_yuan[i];for(i=0;i<256;i++){pDC->MoveTo(410+i,nh+200);pDC->LineTo(410+i,nh+200-(m_yuan[i]*160/max));}}if(m_bHist==true){//绘画直⽅图CString str;int nh=m_dib.GetDIBHeight();int i;// 画坐标轴// 绘制坐标轴pDC->MoveTo(10,nh+20); //(10,nh+20 )是直⽅图的左上⾓坐标// 垂直轴pDC->LineTo(10,nh+200);//(10,nh+200 )是直⽅图的左下⾓坐标// ⽔平轴pDC->LineTo(310,nh+200);//(310,nh+200 )是直⽅图的右下⾓坐标// 写X轴刻度值str.Format("0");pDC->TextOut(10, nh+200+10, str);str.Format("50");pDC->TextOut(60, nh+200+10, str);str.Format("100");pDC->TextOut(110, nh+200+10, str);str.Format("150");pDC->TextOut(160, nh+200+10, str);str.Format("200");pDC->TextOut(210, nh+200+10, str);str.Format("255");pDC->TextOut(265, nh+200+10, str);// 绘制X轴刻度for ( i = 0; i < 256; i += 25){if ((i & 1) == 0){// 10的倍数pDC->MoveTo(i + 10, nh+200-2);pDC->LineTo(i + 10, nh+200+2);}else{// 10的倍数pDC->MoveTo(i + 10, nh+200-2);pDC->LineTo(i + 10, nh+200+2);}}// 绘制X轴箭头pDC->MoveTo(305,nh+200-5);pDC->LineTo(310,nh+200);pDC->LineTo(305,nh+200+5);// 绘制y轴箭头pDC->MoveTo(10,nh+20);pDC->LineTo(5,nh+20+5);pDC->MoveTo(10,nh+20);pDC->LineTo(15,nh+20+5);int max=0;for(i=0;i<256;i++)if(m_hist[i]>max)max=m_hist[i];for(i=0;i<256;i++){pDC->MoveTo(10+i,nh+200);pDC->LineTo(10+i,nh+200-(m_hist[i]*160/max));}}}///////////////////////////////////////////////////////////////////////////// // CCqxhistView printing BOOL CCqxhistView::OnPreparePrinting(CPrintInfo* pInfo){// default preparationreturn DoPreparePrinting(pInfo);}void CCqxhistView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/){// TODO: add extra initialization before printing}void CCqxhistView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/){// TODO: add cleanup after printing}///////////////////////////////////////////////////////////////////////////// // CCqxhistView diagnostics#ifdef _DEBUGvoid CCqxhistView::AssertValid() const{CView::AssertValid();}void CCqxhistView::Dump(CDumpContext& dc) const{CView::Dump(dc);}CCqxhistDoc* CCqxhistView::GetDocument() // non-debug version is inline{ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCqxhistDoc)));return (CCqxhistDoc*)m_pDocument;}#endif //_DEBUG///////////////////////////////////////////////////////////////////////////// // CCqxhistView message handlersvoid CCqxhistView::OnOpenImage(){// TODO: Add your command handler code here// TODO: Add your command handler code herestatic char szFilter[]="BMP⽂件(*.bmp)|*.bmp||"; //定义过滤⽂件的类型 CFileDialog dlg(TRUE,"bmp",NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);//定义⽂件对话框对象 CString filename;int ret=dlg.DoModal(); //运⾏打开⽂件对⽅框if(ret==IDOK){filename=dlg.GetFileName(); //获取所选择图像的路径 m_dib.LoadFromFile(filename); //加载图像if(!m_dib.m_bLoaded) //判断是否加载图像成功{AfxMessageBox("图像打不开");return;}for(int i=0;i<256;i++) //初始化直⽅图数组{ m_hist[i]=0;m_yuan[i]=0;}m_bHist=false;}{int nw=m_dib.GetDIBWidth();int nh=m_dib.GetDIBHeight();for(int j=0;jfor(int i=0;i{BYTE temp=m_dib.m_pdata[j*nw+i];m_yuan[temp]++;}}Invalidate(1); //刷新屏幕}void CCqxhistView::OnHistImage(){// TODO: Add your command handler code here//功能:实现直⽅图均衡化////////////////////////////判断图像是否打开,没打开,则弹出提⽰框并退出函数if(!m_dib.m_bLoaded){AfxMessageBox("图像还打开,请先打开图像!");return;}//获取图像宽和⾼int nw=m_dib.GetDIBWidth();int nh=m_dib.GetDIBHeight();int i,j,k;int count[256]={0};//定义⼀个数组,⽤于存放灰度级个数float p[256];//定义⼀个数组,⽤于存放灰度级出现频率//对图像进⾏直⽅图均衡化处理for(i=0;ifor(j=0;j{k=m_dib.m_pdata[i*nw+j];//计算灰度级个数count[k]++;}for(k=0;k<256;k++)p[k]=count[k]/(nw*nh*1.0f);float c[256]={0};float sum=0.0;int ngray[256];//新的灰度级for(k=0;k<256;k++)//计算累积频率{sum+=p[k];c[k]=sum;ngray[k]=(int)(255.0*c[k]+0.5);}for(i=0;ifor(j=0;j{k=m_dib.m_pdata[i*nw+j];m_dib.m_pdata[i*nw+j]=ngray[k];}{int nw=m_dib.GetDIBWidth();int nh=m_dib.GetDIBHeight();for(int j=0;jfor(int i=0;i{BYTE temp=m_dib.m_pdata[j*nw+i];m_hist[temp]++;}}//将修改的m_pdata的数据赋值给m_pDIBData,以显⽰修改的结果m_dib.UpdateData();m_bHist=true;//将修改的m_pdata的数据赋值给m_pDIBData,以显⽰修改的结果 m_dib.UpdateData(); //刷新屏幕Invalidate();}4、实验结果C++编程结果:。
数字图像处理PPT 第3章_图像直方图

H Pi log 2 Pi i0
熵反映了图像信丰富的程度,在图像编码处理中具有重要意义。
1. 有一胶片图象,在背景明亮的天空衬托 下,有一亮色屋顶的深色谷仓.
在下述各种情况下,试指出直 方图看起来将是什么样子:如果该图象被(a) 正确数字化;(b)数字化时增益调整过低; (c)数字化时增益调整过高;(d)数字化 时偏置过大;(e)数字化时偏置过小;(f) 数字化时增益和偏置均过大。假设0为暗, 255为亮。
g fr (x, y,t), f g (x, y,t), fb (x, y,t)
3 图像灰度直方图
3.3 灰度直方图的应用
用于确定图像二值化的阈值
g fr (x, y,t), f g (x, y,t), fb (x, y,t)
3 图像灰度直方图
3.3 灰度直方图的应用
3.3 灰度直方图的应用
用于判断图像量化是否恰当
g fr (x, y,t), f g (x, y,t), fb (x, y,t)
3 图像灰度直方图
3.3 灰度直方图的应用
用于确定图像二值化的阈值 0 f (x, y) T
g(x, y) 1 f (x, y) T
3 图像灰度直方图
3.1 图像灰度直方图的基本概念
vi
g fr (x, y,t), f g (x, y,t), fb (x, y,t)
3 图像灰度直方图
3.1 图像灰度直方图的基本概念
vi
g fr (x, y,t), f g (x, y,t), fb (x, y,t)
N5=5
i
12321212
N6=8
31231221
[数字图像处理](四)直方图均衡化[HE]算法
直方图均衡化[HE]算法](https://img.taocdn.com/s3/m/6a5c58380a4c2e3f5727a5e9856a561252d32103.png)
[数字图像处理](四)直⽅图均衡化[HE]算法图像处理(四)直⽅图均衡化0____前⾔直⽅图操作是图像处理中的⼀个基本⼯具。
从观察⼀些图像的直⽅图中我们可以发现,在暗图像中 ,⼤多数直⽅图灰度容集在灰度低端;类似的在亮图像的直⽅图中,⼤多数直⽅图灰度容集在灰度级的⾼端。
直⽅图均衡化就是通过计算每⼀灰度级数出现的概率,并将得到的概率前缀和映射到原图像中的过程,此处介绍的是最基本的基于全图像的均衡化的HE(直⽅图均衡化)算法,之后会继续介绍AHE(⾃适应直⽅图均衡化)与CLAHE(限制对⽐度直⽅图均衡)。
1____算法流程读⼊图像预处理统计每个灰度级数在图像中出现的次数计算每个灰度级数于总像素的概率,并统计数组的前缀和将得到的前缀和映射到原图像数组中2____MATLAB实现clc;close all;clear all;% 读⼊,预处理im = imread('p21.png');imgray = rgb2gray(im);figure;subplot(2,2,1);imshow(imgray);% 统计每个灰度级数hist = zeros(1,256);[n,m] = size(imgray);% 后⾯要+1因为图像的范围是在0~255,但是matlab的数组是从1开始映射的for i = 1:1:nfor j = 1:1:mhist( imgray(i,j)+1 ) = hist( imgray(i,j) +1) + 1;endendsubplot(2,2,2);bar(hist);% 求分布概率前缀和pro = zeros(1,256);sumim = sum(hist)pro(1) = hist(1)/sumim;for i = 2:1:256pro(i) = pro(i-1)+hist(i)/sumim;end% 灰度映射transim = zeros(n,m);for i = 1:1:nfor j = 1:1:mtransim(i,j) = pro(imgray(i,j))*255 + 0.5;endendtransim = uint8(transim);subplot(2,2,3);imshow(transim);subplot(2,2,4);imhist(transim);。
数字图像处理实验报告直方图均衡化

数字图像处理实验报告实验名称:直方图均衡化姓名:班级:学号:专业:电子信息工程(2+2)指导教师:陈华华实验日期:2012年5月24日直方图均衡化图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。
直方图均衡化是最常见的间接对比度增强方法。
直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现对比度的增强。
直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。
直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。
缺点:1)变换后图像的灰度级减少,某些细节消失;2)某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。
直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。
这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。
通过这种方法,亮度可以更好地在直方图上分布。
这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。
直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。
设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。
在灰度直方图均衡化处理中对图像的映射函数可定义为:g = EQ (f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数):(1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。
这是为了保证增强处理没有打乱原始图像的灰度排列次序,原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列。
(2)对于0≤f≤L-1有0≤g≤L-1,这个条件保证了变换前后灰度值动态范围的一致性。
(848页PPT幻灯片)数字图像处理(冈萨雷斯)课件

例3:镜头边界检测
பைடு நூலகம்
例4:基于内容的图像检索 例5:基于内容的镜头检索
例6:基于内容的视频片断检索
例7:视频字幕识别
例7:视频字幕识别
T. B$alr
Boat
Fish
H. Jlntao J.
E. Lah oud MaI•
MeetJn
MJIIta Mono§o us Motorbike
News pa per
为什么要用SAN
存传储统区存域储网解S决AN方(S案tor—ag—e A信re息a 岛Network)
SAN
SAN是什么?
SAN是什么?(续)
不是client/server,而是client/storage devices 独立于LAN之外的高速存储网络 一般采用高速的光纤通道作为传输媒体( 2Gbit/s) 将存储设备通过光通道互连设备构成一个存 储子网 支持服务器和存储设备之间任意到任意的连 接 S A N上的任何一台服务器均可存取网络中的任何一个 存 储设备 对网上的存储资源实施集中统一的管理
Vision (IJCV) ✓ Pattern Recognition (PR) ✓ Image and Vision Computing (IVC)
✓…
目前需要做的事情
选课学生发送下列信息给老师: pengyuxin@
✓ 姓名 ✓ 学号 ✓ 联系方式:E_mail,电话 ✓ 硕士生或博士生,年级 ✓ 所在院系、实验室、导师 ✓ 研究方向
✓灰度图像是一个二维灰度(或亮度)函数f(x,y) ✓彩色图像由三个(如RGB,HSV)二维灰度(或亮度)函数 f(x,y)组成
y
y
x
x
什么是数字图像?
直方图均衡化原理与实现

直⽅图均衡化原理与实现直⽅图均衡化(Histogram Equalization) ⼜称直⽅图平坦化,实质上是对图像进⾏⾮线性拉伸,重新分配图像象元值,使⼀定灰度范围内象元值的数量⼤致相等。
这样,原来直⽅图中间的峰顶部分对⽐度得到增强,⽽两侧的⾕底部分对⽐度降低,输出图像的直⽅图是⼀个较平的分段直⽅图:如果输出数据分段值较⼩的话,会产⽣粗略分类的视觉效果。
直⽅图是表⽰数字图像中每⼀灰度出现频率的统计关系。
直⽅图能给出图像灰度范围、每个灰度的频度和灰度的分布、整幅图像的平均明暗和对⽐度等概貌性描述。
灰度直⽅图是灰度级的函数, 反映的是图像中具有该灰度级像素的个数, 其横坐标是灰度级r, 纵坐标是该灰度级出现的频率( 即像素的个数) pr( r) , 整个坐标系描述的是图像灰度级的分布情况, 由此可以看出图像的灰度分布特性, 即若⼤部分像素集中在低灰度区域, 图像呈现暗的特性; 若像素集中在⾼灰度区域, 图像呈现亮的特性。
图1所⽰就是直⽅图均衡化, 即将随机分布的图像直⽅图修改成均匀分布的直⽅图。
基本思想是对原始图像的像素灰度做某种映射变换, 使变换后图像灰度的概率密度呈均匀分布。
这就意味着图像灰度的动态范围得到了增加, 提⾼了图像的对⽐度。
图1 直⽅图均衡化通过这种技术可以清晰地在直⽅图上看到图像亮度的分布情况, 并可按照需要对图像亮度调整。
另外,这种⽅法是可逆的, 如果已知均衡化函数, 就可以恢复原始直⽅图。
设变量r 代表图像中像素灰度级。
对灰度级进⾏归⼀化处理, 则0≤r≤1, 其中r= 0表⽰⿊, r= 1表⽰⽩。
对于⼀幅给定的图像来说, 每个像素值在[ 0,1] 的灰度级是随机的。
⽤概率密度函数来表⽰图像灰度级的分布。
为了有利于数字图像处理, 引⼊离散形式。
在离散形式下, ⽤代表离散灰度级, ⽤代表 , 并且下式成⽴:其中, 0≤≤1, k=0, 1, 2, …, n-1。
式中为图像中出现这种灰度的像素数, n是图像中的像素总数, ⽽就是概率论中的频数。
数字图像处理图像滤波ppt课件

47
噪声图像
中值滤波3x3
48
平均滤波与中值滤波比较
噪声图像
均值滤波
中值滤波
均值滤波和中值滤波都采用的是2x2 的模板
49
均值,中值和最频值
均值是模板内像素点灰度的平均值,中值是数值排列 后处于中间的值,最频值是出现次数最多的灰度值;
8
常用像素距离公式
欧几里德距离
DE
(
p,
q)
x
s 2
y
t
2
范数距离
D( p, q) x s y t
棋盘距离
D( p, q) max x s , y t
9
像素间的基本运算
算术运算:
加法: p + q
减法: p - q
乘法: p * q
这三者都与直方图有着密切的关系; 直方图的一个峰对应一个区域,如果这个峰是对称的,
那么均值等于中值,等于最频值。
50
中值滤波的代码实现 Matlab中函数medfilt1和medfilt2,第一个是一维
的中值滤波,第二个是二维的中值滤波。 使用help查看函数功能
51
示例
52
代码讲解
0.25
0.10 0.05
0.125 01 2
34
56
7
P r 关系目标曲线 r
原始图像中的P-r点位置 对应变换后的P-r点位置
24
算法描述 设像素共分为L级(r = 0,1,2,…L1),变换后对应的
数字图像处理技术PPT图像数字化和直方图

二、图像的数字化
4.量化技术
量化可分为均匀量化和非均匀量化。 均匀量化是简单地在灰度范围内等间隔 量化。非均匀量化是对像素出现频度少 的部分量化间隔取大,而对频度大的量 化间隔取小的量化间隔。
一般情况下,对灰度变化比较平缓的部分用比较多的量化级, 在灰度变化比较剧烈的地方用比较高的分辨率。
量化
一、数字图像的概念与描述
2.灰度图像
灰度图像是指每个像素的信息由 一个量化的灰度级来描述的图像,没 有彩色信息。
0 150 200 I 120 50 180 250 220 100
灰度图像描述示例
一、数字图像的概念与描述
3.彩色图像
彩色图像是指每个像素的信息由 RGB三原色构成的图像,其中RGB是 由不同的灰度级来描述的。
三基色原理
大自然中的颜色都可以通过红、绿、蓝三色按照 不同的比例合成产生,同样绝大多数单色光也可 以分解成红绿蓝三种色光。即三基色原理。 三种基色是相互独立的,红绿蓝三基色按照不同 的比例相加合成混色称为相加混色: 红色+绿色=黄色 绿色+蓝色=青色 红色+蓝色=品红 红色+绿色+蓝色=白色
彩色图像描述
采样间隔效果示意图
返回
均匀量化效果示意图
返回
非均匀量化效果示意图
返回
均匀量化与非均匀量化效果的比较
返回
量化与采样的效果图例
原图
低灰度级量化
低分辨率 返回
黑白图像
返回
灰度图像
返回
彩色图像
返回
彩色图的灰度直方图
返回
灰度图的灰度直方图
返回
灰度分布效果比较示意图
图像直方图的均衡化处理图的均衡化

图像直⽅图的均衡化处理图的均衡化图像直⽅图的均衡化处理⼀,技术要求1.1,利⽤matlab提供的函数处理 (2)1.2,利⽤matlab⾃⾏编辑代码处理 (3)⼆,基本原理 (3)2.1,直⽅图的均衡化 (3)2.2,直⽅图的标准化 (3)三,建⽴模型描述 ......................................................................... 3~43.1,利⽤matlab提供的函数处理 (4)3.2,利⽤matlab⾃⾏编辑代码 (4)四,源程序代码 ............................................................................. 5~64.1,绘制图像直⽅图的代码 (5)4.2,绘制图像均衡化后直⽅图的代码 (5)4.3,显⽰均衡化后图像的代码 (6)五,调试过程及结论 ..................................................................... 6~85.1,在编辑窗⼝键⼊绘制直⽅图的源代码得到的输出结果为图2 (6)5.2,利⽤matlab函数绘制的图像直⽅图标准化的输出结果如图3..75.3,直⽅图均衡化输出结果如图4所⽰。
(8)六,⼼得体会 (9)七,参考⽂献 (9)图像直⽅图的均衡化处理⼀,技术要求1.1,利⽤matlab提供的函数处理利⽤matlab提供的函数画出⼀幅图像的直⽅图,对其进⾏均衡化和标准化处理,并⽐较均衡化(标准化)后图像和原图像的区别。
1.2,利⽤matlab⾃⾏编辑代码处理利⽤matlab⾃⾏编辑代码,实现⼀幅图像的直⽅图显⽰和均衡化的处理,同样⽐较处理前后两幅图像的区别,了解图像均衡化的效果和实际运⽤。
⼆,基本原理直⽅图是多种空域处理技术的基础。
它能有效的⽤于图像增强。
直方图均衡化算法-Read.PPT

0.5
S=kr+b 0
0.5
1
(d)反转函数
(d)反转效果
(c)变换结果
图6-21 不同线性灰度变换 效果的比较
非线性单调点变换
L-1
s
0 r
图6-22非线性点运算
T(r)=r+kr(L-r)
L-1
(6-34)
S型函数
指数变换
s=cy
(6-38)
c和y为常数。
当 1时,具有扩展低亮度区、压缩高亮度区的
输出图像灰度概率密度数学模型
均匀 (Uniform)
指数 (Exponitial)
瑞利 (Raleigh)
双曲线 (立方根) (Hyperbolic)
双曲线(对数)
转移函数
直方图规定化算法
设Pf(fi)原始图像直方图,Pz(zi)期望输出图像的直方图, fj, zi [0,L-1]。
1.分别对 Pf(fj), Pz(zi)作均衡化处理, fj gm, zi yn;
gi=INT[(gmax-gmin)c(f)+gmin+0.5] 6.统计映射后各灰度级的象素数目ni, i=0,1,…,p-1; 7.计算输出图像直方图Pg(gi)= nj/n,i=0,1,…,p-1; 8.用fj和gi的映射关系,修改原始图像灰度级,获得直方图近似均匀分布 的输出图像。
Байду номын сангаас
典型直方图变换的转移函数
2.在 gm yn 处组合, Pf(fi) Pz(zi)。 gm=T(fj), yn=G(zi), gm yn, zi=G-1[T(fj)]
6.2.4小结
■ 点运算是对图像的灰度级进行变换; ■ 点运算可用于光度学校正、显示校正、图像增强和直方图
数字图像处理作业 直方图均衡

作业3:直方图均衡1.选取一张对比度不明显的彩色图像,编写MATLAB代码对RGB通道独立地进行直方图均衡,同时用PHOTOSHOP软件对其进行均衡,比较两种处理方法在效果上的差异。
使用R/G/B=image(:,:,1/2/3);提取图像的三个通道,imshow(R);显示三个通道的图像,imhist(R);显示对应颜色分量的直方图,r=histeq(R);分别对三个通道进行直方图均衡化,equated = cat(3,r,g,b);联合RGB三个数组,得到均衡化后的图像。
原图与matlab直方图均衡化后的图像原图的RGB分量均衡后的RGB分量在photoshop中处理图像后得到下图的结果。
Ps中得到的图像RGB通道独立直方图均衡得到的图像比较:选取的原图是逆光拍摄,颜色很暗,暗部细节很多。
经过matlab处理后,灰度级部分合并,灰度级较低的间隔变大,灰度级较高的间隔变小。
但对真彩色图像的直方图均衡化时,通过单纯地对RGB三个分量图像分别均衡、合并, 会使均衡后的图像出现轻微的色彩失真现象, 而且原图中灰度级较高的地方的细节部分缺失。
但是经过ps处理后的图像,原本灰度值较低的地方明显变亮,同时原本灰度值较高的地方仍然很好保留了,并没有出现matlab处理后的问题。
Ps处理后的图像色彩也很正常,没有出现失真的问题。
数字图像直方图的算法步骤:①列出原始图像的灰度级f j,j=0,1,…,L-1,②统计各灰度级的像素数目n j,j=0,1,…,L-1,③计算原始图像直方图各灰度级的频数p(f j)= n j/N,j=0,1,…,L-1,④计算累计分布函数C(j)=Σp(f k), j=0,1,…,L-1,⑤g i= INT[(g max-g min)C(f)+g min+0.5]2.阅读"Exact Hitogram Specification"这篇英文文献第二部分和第三部分,结合压缩包中MATLAB源代码,理解精确直方图均衡的算法原理,重点是借助空间滤波实现像素排序的算法原理,用(1)中图片,比较精确直方图均衡和PHOTOSHOP均衡的效果差异。
数字图像处理ppt课件

between 64 to 128 (using function
imagesc).
>>clims=[64,128]
>>imagesc(a,clims)
f. Make a movie from a 4-D image (load mri, make the movie by immovie, then show movie by function movie).
二、实验内容:
使用Photoshop观察数字图像增强的效果; 练习和掌握图像增强的Matlab编程。。 熟悉下列模块函数
Image enhancement. histeq - Read image file. imadust - Adust imae intensity values or colormap.
imshow - Display image.
subimage - Display multiple images in single figure.
truesize - Adjust display size of image.
warp - Display image as texture-mapped surface.
processing.
f. Compare the qualities of two images and
makes a discussion about them.
g. Add noises, such as gaussian, salt&pepper,
speckle noise into the image respectively.
10)选图像Blood、噪声类型Salt & Pepper、滤波器类型Median、邻域3x3,比较原始图像、
数字图像处理直方图均衡化PPT课件

三. 直方图的性质
不同图象对应相同的直方图
长江大学电子信息学院
四. 直方图均衡化
1.原因
大多数自然图像,其灰度分布集中在较窄的区间,引起图像 细节不够清晰,采用直方图修正后可使图像的灰度间距拉开或使 灰度分布均匀,从而增大反差,使图像细节清晰,达到增强的目 的。例如一幅过曝光的图片,其灰度级都集中在高亮度范围内, 而曝光不足的图片,其灰度级集中在低亮度范围内,具有这样直 方图的图片其可视效果比较差。
p(r)图 灰 像 度 上 为 的 r的 总 像 像 素 素 数 数
n
i 1
p(ri )
1
长江大学电子信息学院
一.灰度级直方图的概念
灰度级
123456
灰度级的像素数 7 4 3 7 2 13
图像的直方图 长江大学电子信息学院
一. 灰度级直方图的概念
灰度图像的直方图
长江大学电子信息学院
二. 直方图的计算
长江大学电子信息学院
四. 直方图均衡化
3.直方图均衡化MATLAB的实现
程序:调整c图lea像r 的all对比度,调整前后的图像见图 I=imread(‘C:\lena.bmp’); J=imadjust(I,[0.3 0.7],[ ]); subplot(221), imshow(I); subplot(222), imshow(J); subplot(223), imhist(I) subplot(224), imhist(J);
长江大学电子信息学院
四. 直方图均衡化
2.直方图均衡化步骤
(求(13)变)对用换给新后定灰的的度新待代灰处替度理旧;图灰像度统,计求其出直Pቤተ መጻሕፍቲ ባይዱ方(s)图,,这求一出步Pr是(r近k)似过nk程/N ,应
直方图均衡化

图像的灰度直方图是一个1-D的离散函数
h h ((ff)) n nf f ff 0, 0, 1, 1, ,, L L 1 1
灰度累积直方图也是一个1-D的离散函数
c( f ) n i
i 0 f
f 0, 1,
, L 1
直方图均衡化
直方图均衡化主要用于增强动态范围偏小的图像 的反差。
直方图均衡化
原始图像各灰度级对应的概率分布
例
灰度级
0
1
2
3
4
5
6
7
像素
概率
790
1023 850
656
329
245
122
0.03
81
0.02
0.19 0.25
0.21 0.16
0.08 0.06
18
直方图均衡化
图像直方图均衡化过程如下:
(1)得到变换后的值:
例解:
t 0 T ( s0 ) t1 T (s1 )
我们注意到在暗色的图像中,直 方图的组成成分集中在灰度级低 (暗)的一侧;反之,明亮的图 像的直方图的组成成分则集中在 灰度级高(亮)的一侧;动态范 围小,也就是对比度小,这种图 像直方图集中于灰度级的中部; 动态范围正常的图像直方图的成 分覆盖了灰度级很宽的范围。 直观上,若一图像像素占有全部 可能的灰度级并且分布均匀,则 图像有高的对比度和多变的灰度 色调,即,可通过改变直方图的 形状来达到增强图像对比度。
nk Pr ( rk ) 0 rk 1 n k 0, 1, 2 , , l 1
式中,nk为图像中出现rk 这种灰度的像素数,n 是 图像中像素总数,而 n k 就是概率论中所说的频数。 n 在直角坐标系中作出 rk 与Pr(rk) 的关系图形,这个图 形称为直方图。
【数字图像处理】灰度直方图、直方图均衡化、直方图规定化

【数字图像处理】灰度直⽅图、直⽅图均衡化、直⽅图规定化灰度直⽅图 ⼀幅图像由不同灰度值的像素组成,图像中灰度的分布情况是该图像的⼀个重要特征。
图像的灰度直⽅图就描述了图像中灰度分布情况,能够很直观的展⽰出图像中各个灰度级所占的多少。
图像的灰度直⽅图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数:其中,横坐标是灰度级,纵坐标是该灰度级出现的频率。
灰度直⽅图的计算公式如下:p(rk)=nk/MN其中,rk是像素的灰度级,nk是具有灰度rk的像素的个数,MN是图像中总的像素个数。
直⽅图均衡化 Histogram Equalization假如图像的灰度分布不均匀,其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对⽐度较低。
通常采⽤直⽅图均衡化及直⽅图规定化两种变换,使图像的灰度范围拉开或使灰度均匀分布,从⽽增⼤反差,使图像细节清晰,以达到增强的⽬的。
直⽅图均衡化,对图像进⾏⾮线性拉伸,重新分配图像的灰度值,使⼀定范围内图像的灰度值⼤致相等。
这样,原来直⽅图中间的峰值部分对⽐度得到增强,⽽两侧的⾕底部分对⽐度降低,输出图像的直⽅图是⼀个较为平坦的直⽅图。
均衡化算法直⽅图的均衡化实际也是⼀种灰度的变换过程,将当前的灰度分布通过⼀个变换函数,变换为范围更宽、灰度分布更均匀的图像。
也就是将原图像的直⽅图修改为在整个灰度区间内⼤致均匀分布,因此扩⼤了图像的动态范围,增强图像的对⽐度。
通常均衡化选择的变换函数是灰度的累积概率,直⽅图均衡化算法的步骤:计算原图像的灰度直⽅图 P(Sk)=nknP(Sk)=nkn,其中nn为像素总数,nknk为灰度级SkSk的像素个数计算原始图像的累积直⽅图 CDF(Sk)=∑i=0knin=∑i=0kPs(Si)CDF(Sk)=∑i=0knin=∑i=0kPs(Si)Dj=L⋅CDF(Si)Dj=L⋅CDF(Si),其中 DjDj是⽬的图像的像素,CDF(Si)CDF(Si)是源图像灰度为i的累积分布,L是图像中最⼤灰度级(灰度图为255)灰度直⽅图均衡化实现的步骤1.统计灰度级中每个像素在整幅图像中的个数2.计算每个灰度级占图像中的概率分布3.计算累计分布概率4.计算均衡化之后的灰度值5.映射回原来像素的坐标的像素值⽰例说明来看看通过上述步骤怎样实现的拉伸。
直方图+直方图均衡化增强共22页PPT

•
7、心急吃不了热汤圆。
•
8、你可以很有个性,但某些时候请收 敛。
•
9、只为成功找方法,不为失败找借口 (蹩脚 的工人 总是说 工具不 好)。
•
10、只要下定决心克服恐惧,便几乎 能克服 任何恐 惧。因 为,请 记住, 除了在 脑海中 ,恐惧 无处藏 身。-- 戴尔. 卡耐基 。
31、只有永远躺在泥坑里的人,才不会再掉进坑里。——黑格尔 32、希望的灯一旦熄灭,生活刹那间变成了一片黑暗。——普列姆昌德 33、希望是人生的乳母。——科策布 34、形成天才的决定因素应该是勤奋。——郭沫若 35、学到很多东西的诀窍,就是一下子不要学很多。——洛克
DSP原理及图像处理应用第16章 直方图均衡化

0.09 0.12
0.16 0.28 1 2--1 2 3--2
0.14
22
0.16
1 7 7--7 0.16
0.62 0.84 4 5--4 0 6 6--6 0.22
g f p(i )
确定映射对应关系f--g 计算新直方图
0,1---0 0.07 0.09
数字信号处理器原理A
第16章 直方图均衡化
目 录
第16章 直方图均衡化
16.1 引言 16.2 基本原理
16.3 算法步骤与流程图
16.4 C语言代码与分析 16.5 试验结果与分析 16.6 分析与总结
本章学习目标
掌握直方图的概念; 理解直方图的性质; 理解直方图均衡化的基本原理
掌握相应的DSP编程方法与步骤;
16.2 基本原理
直方图归一化概率表达形式 :
p( f ) n f n f 0, 1, , L 1 这里,n表示图像里像素的总个数。
直方图均衡的基本思想: 寻找到一个变换函数(增强函数),把原 图像对应的直方图变成均匀分布的形式。
16.2 基本原理
增强函数需要满足2个条件: (1)它在范围0≤ f≤(L-1)内是1个单值单增函数, 这是为了保证原图各灰度级在变换后仍保持原 来从黑到白(或从白到黑)的排列次序。 (2)如果设均衡化后的图像为g(x, y),则: 对于 0≤ f≤(L-1), 有 0≤ g≤(L-1) 这个条件保证变换前后图像的灰度值范围是一 致的。
直方图均衡化就是把给定图像的直方图分布改变成“均匀” 分布直方图分布。
经直方图均衡化处理后,可以得到一幅改善了质量的新图 像。这幅图像的灰度层次将不再是呈现黑暗色调的图像,而 是一幅灰度层次较为适中的、比原始图像清晰得多的图像。 处理的结果使图像更适合于人的视觉特征或机器的识别系 统。