数字图像处理直方图均衡化PPT课件
数字图像处理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
数字图像处理课程设计报告---直方图均衡化
设计题目:直方图均衡化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///////////////////////////////////////////////////////////////////////////// // CCqxhistView1,,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 j f ]5.0)()[(min min max ++-=g f C g g INT g i nn r p k k =)(1,,2,1,010-=≤≤l k r kIMPLEMENT_DYNCREATE(CCqxhistView, CView)BEGIN_MESSAGE_MAP(CCqxhistView, CView)//{{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/destructionCCqxhistView::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 printingBOOL 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;j<nh;j++)for(int i=0;i<nw;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;i<nh;i++)for(j=0;j<nw;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;i<nh;i++)for(j=0;j<nw;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;j<nh;j++)for(int i=0;i<nw;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++编程结果:。
(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
什么是数字图像?
数字图像处理图像滤波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是 由不同的灰度级来描述的。
三基色原理
大自然中的颜色都可以通过红、绿、蓝三色按照 不同的比例合成产生,同样绝大多数单色光也可 以分解成红绿蓝三种色光。即三基色原理。 三种基色是相互独立的,红绿蓝三基色按照不同 的比例相加合成混色称为相加混色: 红色+绿色=黄色 绿色+蓝色=青色 红色+蓝色=品红 红色+绿色+蓝色=白色
彩色图像描述
采样间隔效果示意图
返回
均匀量化效果示意图
返回
非均匀量化效果示意图
返回
均匀量化与非均匀量化效果的比较
返回
量化与采样的效果图例
原图
低灰度级量化
低分辨率 返回
黑白图像
返回
灰度图像
返回
彩色图像
返回
彩色图的灰度直方图
返回
灰度图的灰度直方图
返回
灰度分布效果比较示意图
第三四直方图及直方图的规定化和均衡化PPT学习课件
f (sk )
rk
1
p
r
0
p sk 0
dr
s
ds
2020/2/26
sk ds rk p r dr
0
0
9
直方图均衡原理
• 连续模型下直方图均衡公式:
T rk
rk p r dr
0
• 离散化:
T rk
k
p rj
• 概率分布函数:
2020/2/26
f (rk )
rk p r dr ;
0
f (sk )
sk p s ds
0
8
直素面积 =
原图像在[0,rk]灰 度级范围内像素
f面(rk积) 。0rk p r dr =
sk T rkps
• 步骤3:求步骤2的反变换 ,将原始直方图对 应映射到规定直方图
zk G1(sk ) G1[T (rk )] k 0,1, 2,..., L 1
2020/2/26
17
直方图规定化
zk G1(sk ) G1[T (rk )] k 0,1, 2,..., L 1
分布均匀。
5
直方图均衡
• 基本思想:
– 将原始图直方图变换为在整个灰度范围内均匀分布。
• 目的:
– 增加像素灰度值的动态范围,增强图像整体对比度。
• 思路:
– –
寻要找求灰h%(度sk 映) 为射函均数匀T分(·布),。有
sk T rk
2020/2/26
6
直方图均衡原理
• 灰度映射函数T(·),有sk T rk
直方图均衡化算法-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小结
■ 点运算是对图像的灰度级进行变换; ■ 点运算可用于光度学校正、显示校正、图像增强和直方图
图像增强-数字图像处理
图像增强
2.图像噪声的特点 (1)噪声在图像中的分布和大小不规则,即具有随机性。 (2)噪声与图像之间一般具有相关性。 (3)噪声具有叠加性。
图像增强
3.3.2 模板卷积 模板操作是数字图像处理中常用的一种邻域运算方式,
灰度变换就是把原图像的像素灰度经过某个函数变换成 新图像的灰度。常见的灰度变换法有直接灰度变换法和直方 图修正法。直接灰度变换法可以分为线性变换、分段线性变 换以及非线性变换。直方图修正法可以分为直方图均衡化和 直方图规定化。
图像增强
3.1.1 线性变换 假定原图像f(x,y)的灰度范围为[a ,b],希望变换后图像
ቤተ መጻሕፍቲ ባይዱ
图像增强
例如,假定一幅大小为64×64、灰度级为8个的图像,其灰 度分布及均衡化结果如表3-1 所示,均衡化前后的直方图及变 换用的累积直方图如图3-10所示,则其直方图均衡化的处理 过程如下。
图像增强
图像增强 由式(3-12)可得到一组变换函数:
依此类推:s3=0.81,s4=0.89,s5=0.95,s6=0.98,s7=1.0。变换函 数如图3-10(b)所示。
图像增强
1
图像增强
图3-1 灰度线性变换
图像增强
图3-2 灰度线性变换示例
图像增强
3.1.2 分段线性变换 为了突出感兴趣的灰度区间,相对抑制那些不感兴趣的
灰度区间,可采用分段线性变换。常用的3段线性变换如图33所示,L 表示图像总的灰度级数,其数学表达式为
图像增强
图3-3-分段线性变换
图像增强
设r 为灰度变换前的归一化灰度级(0≤r≤1),T(r)为变换函 数,s=T(r)为变换后的归一化灰度级(0≤s≤1),变换函数T(r)满足 下列条件:
C语言数字图像处理之直方图均衡化
C语⾔数字图像处理之直⽅图均衡化本⽂实例为⼤家分享了C语⾔直⽅图均衡化的具体代码,供⼤家参考,具体内容如下原理直⽅图均衡化(Histogram Equalization) ⼜称直⽅图平坦化,实质上是对图像进⾏⾮线性拉伸,重新分配图像象元值,使⼀定灰度范围内象元值的数量⼤致相等。
这样,原来直⽅图中间的峰顶部分对⽐度得到增强,⽽两侧的⾕底部分对⽐度降低,输出图像的直⽅图是⼀个较平的分段直⽅图:如果输出数据分段值较⼩的话,会产⽣粗略分类的视觉效果。
直⽅图是表⽰数字图像中每⼀灰度出现频率的统计关系。
直⽅图能给出图像灰度范围、每个灰度的频度和灰度的分布、整幅图像的平均明暗和对⽐度等概貌性描述。
灰度直⽅图是灰度级的函数, 反映的是图像中具有该灰度级像素的个数, 其横坐标是灰度级r, 纵坐标是该灰度级出现的频率( 即像素的个数) pr( r) , 整个坐标系描述的是图像灰度级的分布情况, 由此可以看出图像的灰度分布特性, 即若⼤部分像素集中在低灰度区域, 图像呈现暗的特性; 若像素集中在⾼灰度区域, 图像呈现亮的特性。
灰度数字图像是每个像素只有⼀个采样颜⾊的图像。
这类图像通常显⽰为从最暗⿊⾊到最亮的⽩⾊的灰度。
灰度图像与⿊⽩图像不同,在计算机图像领域中⿊⽩图像只有⿊⽩实现流程:1)统计每个灰度级像素点的个数2)计算灰度分布密度3)计算累计直⽅图分布4)累计分布取整,保存计算出来的灰度映射关系处理图⽚规格800*600 8位灰度单通道原图直⽅图均衡化分析:本次实验中,我故意把原图调暗,进⾏直⽅图均衡化后可以明显感受到整幅图像亮度增⼤了,⽽且某些细节⽅⾯更加突出。
出现问题最初进⾏直⽅图均衡化时,输出结果如下:经分析,是没有对数组初始化置零导致的。
Hist数组是进⾏⼀个统计像素点个数的数组,最初倘若不置零,结果必然毫⽆意义。
故⽽添加数组内存置零的操作:经测试,问题解决。
附代码#include <stdio.h>#include <stdlib.h>#include <memory.h>#define height 600#define width 800typedef unsigned char BYTE; // 定义BYTE类型,占1个字节int main(void){FILE *fp = NULL;//BYTE Pic[height][width];BYTE *ptr;BYTE **Pic = new BYTE *[height];for (int i = 0; i != height; ++i){Pic[i] = new BYTE[width];}fp = fopen("weiminglake_huidu.raw", "rb");ptr = (BYTE*)malloc(width * height * sizeof(BYTE));//创建内存for (int i = 0; i < height; i++){for (int j = 0; j < width; j++){fread(ptr, 1, 1, fp);Pic[i][j] = *ptr; // 把图像输⼊到2维数组中,变成矩阵型式ptr++;}}fclose(fp);int hist[256];float fpHist[256];float eqHistTemp[256];int eqHist[256];int size = height *width;int i, j;memset(&hist, 0x00, sizeof(int) * 256);memset(&fpHist, 0x00, sizeof(float) * 256);memset(&eqHistTemp, 0x00, sizeof(float) * 256);for (i = 0; i < height; i++) //计算差分矩阵直⽅图直⽅图统计每个灰度级像素点的个数{for (j = 0; j < width; j++){unsigned char GrayIndex = Pic[i][j];hist[GrayIndex] ++;}}for (i = 0; i< 256; i++) // 计算灰度分布密度{fpHist[i] = (float)hist[i] / (float)size;}for (i = 0; i< 256; i++) // 计算累计直⽅图分布{if (i == 0){eqHistTemp[i] = fpHist[i];}else{eqHistTemp[i] = eqHistTemp[i - 1] + fpHist[i];}}//累计分布取整,保存计算出来的灰度映射关系for (i = 0; i< 256; i++){eqHist[i] = (int)(255.0 * eqHistTemp[i] + 0.5);}for (i = 0; i < height; i++) //进⾏灰度映射均衡化{for (j = 0; j < width; j++){unsigned char GrayIndex = Pic[i][j];Pic[i][j] = eqHist[GrayIndex];}}fp = fopen("output.raw", "wb");for (i = 0; i < height; i++){for (j = 0; j < width; j++){fwrite(&Pic[i][j], 1, 1, fp);}}fclose(fp);return 0;}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
直方图直方图均衡化增强 共21页PPT共23页
56、死去何所道,托体同山阿。 57、春秋多佳日,登高赋新诗。 58、种豆南山下,草盛豆苗稀。晨兴 理荒秽 ,带月 荷锄归 。道狭 草木长 ,夕露 沾我衣 。衣沾 不足惜 ,但使 愿无违 。 59、相见无杂言,但道桑麻长。 60、迢迢新秋夕,亭亭月将圆。
谢谢
11、越是没有本领的就越加自命不凡。——邓拓 12、越是无能的人,越喜欢挑剔别人的错儿。——爱尔兰 13、知人者智,自知者明。胜人者有力,自胜者强。——老子 14、意志坚强的人能把世界放在手中像泥块一样任意揉捏。——歌德 15、最具挑战性的挑战莫过于提升自我。
(数字图像处理)灰度直方图 PPT
课堂练习答案
解:黑色像素数=520+920+490+30+40+5910=7910 白色像素数
=6050+80+20+80+440+960+420=7970 足球的总像素=7910+7970=15880 足球的面积=6644.24平方毫米 像素的间距=6644.24/15880=0.42毫米
课后作业
替 换D, 并 等 式 两 端 从D到进 行 积 分
DH(p)dp [A(p)]D
因为A() 0
所以DH(p)dp A(D) 若令D 0,则0 H(p)dp A(0) 图象的面积
255
对于离散图象, H(D) NL NS
D0
PDF:通过除以图像的面积可以归一化 灰度直方图,可得到图像的概率密度函 数。
y是图象纵坐标,MAX(y) b;
I/R损伤早期脑组织
3 直方图的用途
(2)对于数字图像,有
NL NS
IOD D(i, j)
i1 j1 255
IOD kNk
k0 255
IOD kH(k)
k0
IOD 0 DH(D)dD
第2种计算方式
3 直方图的用途
(3)所以
0a0b D(x, y)dxdy 0 DH(D)dD
3. 归一化 hist[f(x,y)]/=M*N
2 直方图的计算和性质
2)直方图的性质
①不表示图像的空间信息; ②任一特定图像都有唯一直方图,但反之并不成立;
2 直方图的计算和性质
③归一化灰度直方图和面积函数可得到图像 的概率密度函数PDF和累积分布函数CDF。
因为H(D) d A(D) dD
最新数字图像处理第4章直方图和灰度变换ppt课件
1) 对{rk}、{zk}分别做直方图均衡化
r
sT(r) 0
pr()d
z
vG(z)
pz()d
0
pr ()为原始图像灰度分布的PDF,pZ()为希望得到的PDF。
2) 求G变换的逆变换
z = G-1 (v)
Image No
第四章 图像增强与平滑
3) 根据均衡化的概念,s,v都是常量 用 s替代v有 z = G-1 (s)
1求出灰度级变换t2求出灰度级变换g同时求出逆变换g13通过t和g1求出复合变换h4用h对图象做灰度级变换第四章图像增强与平滑电气照明是建筑电气技术的基本内容是保证建筑物发挥基本功能的必要条件合理的照明对提高工作效率保证安全生产和保护视力都具有重要的意义原始直方图第四章图像增强与平滑电气照明是建筑电气技术的基本内容是保证建筑物发挥基本功能的必要条件合理的照明对提高工作效率保证安全生产和保护视力都具有重要的意义规定化直方图第四章图像增强与平滑电气照明是建筑电气技术的基本内容是保证建筑物发挥基本功能的必要条件合理的照明对提高工作效率保证安全生产和保护视力都具有重要的意义均衡化处理后的直方图数据第四章图像增强与平滑电气照明是建筑电气技术的基本内容是保证建筑物发挥基本功能的必要条件合理的照明对提高工作效率保证安全生产和保护视力都具有重要的意义第四章图像增强与平滑电气照明是建筑电气技术的基本内容是保证建筑物发挥基本功能的必要条件合理的照明对提高工作效率保证安全生产和保护视力都具有重要的意义第四章图像增强与平滑电气照明是建筑电气技术的基本内容是保证建筑物发挥基本功能的必要条件合理的照明对提高工作效率保证安全生产和保护视力都具有重要的意义结果直方图数据第四章图像增强与平滑电气照明是建筑电气技术的基本内容是保证建筑物发挥基本功能的必要条件合理的照明对提高工作效率保证安全生产和保护视力都具有重要的意义第四章图像增强与平滑电气照明是建筑电气技术的基本内容是保证建筑物发挥基本功能的必要条件合理的照明对提高工作效率保证安全生产和保护视力都具有重要的意义第四章图像增强与平滑电气照明是建筑电气技术的基本内容是保证建筑物发挥基本功能的必要条件合理的照明对提高工作效率保证安全生产和保护视力都具有重要的意义第四章图像增强与平滑电气照明是建筑电气技术的基本内容是保证建筑物发挥基本功能的必要条件合理的照明对提高工作效率保证安全生产和保护视力都具有重要的意义第四章图像增强与平滑电气照明是建筑电气技术的基本内容是保证建筑物发挥基本功能的必要条件合理的照明对提高工作效率保证安全生产和保护视力都具有重要的意义431某些基本灰度变换图像增强常用的三种类型函数
DSP原理及图像处理应用第16章 直方图均衡化
15.1 引言
直方图均衡化的优点: ① 直方图均衡化对于背景和前景都太亮或者太暗的 图像非常有用,这种方法尤其是可以带来X光图 像中更好的骨骼结构显示以及曝光过度或者曝光 不足照片中更好的细节。 . ② 它是一个相当直观的技术并且是可逆操作,如果 已知均衡化函数,那么就可以恢复原始的直方图, 并且计算量也不大 .
0.07 0
0.09 0.12
0.16 0.28 1 2--1 2 3--2
0.14
0.42 3 4--3 0.2
0.2
0.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
试验目的:
在DSP系统中,实现“直方图均衡化” 算法,使学生进一 步掌握图像直方图均衡化原理与DSP编程步骤。 试验内容与步骤: 参考教材第16章相应内容。 要求: 在CCS中编程实现“图像直方图均衡化”算法,实验课中 ,要检查试验结果;
谢 谢!
知识要点:
直方图均衡化的基本原理; 相应的DSP编程方法。
15.1 引言
什么是直方图均衡化? ① 直方图均衡化是图像处理领域中利用图像直方图 对对比度进行调整的方法。是通过使用累积函数 对灰度值进行“调整”以实现对比度的增强。 . ② 直方图均衡化 “中心思想”:把原始图像的灰 度直方图从比较集中的某个灰度区间变成在全部 灰度范围内的均匀分布,对图像进行非线性拉伸, 重新分配图像像素值,使一定灰度范围内的像素 数量大致相同。 .
16.2 基本原理
增强函数可用图像 f(x, y) 的累积直方图:
数字图像处理CH3 灰度直方图PPT文档共36页
46、我们若已接受最坏的,就再没有什么损失。——卡耐基 47、书到用时方恨少、事非经过不知难。——陆游 4பைடு நூலகம்、书籍把我们引入最美好的社会,使我们认识各个时代的伟大智者。——史美尔斯 49、熟读唐诗三百首,不会作诗也会吟。——孙洙 50、谁和我一样用功,谁就会和我一样成功。——莫扎特
数字图像处理CH3 灰度直 方图
26、机遇对于有准备的头脑有特别的 亲和力 。 27、自信是人格的核心。
28、目标的坚定是性格中最必要的力 量泉源 之一, 也是成 功的利 器之一 。没有 它,天 才也会 在矛盾 无定的 迷径中 ,徒劳 无功。- -查士 德斐尔 爵士。 29、困难就是机遇。--温斯顿.丘吉 尔。 30、我奋斗,所以我快乐。--格林斯 潘。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三. 直方图的性质
不同图象对应相同的直方图
长江大学电子信息学院
四. 直方图均衡化
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 ,应
(根2)据根处据理统目计的出尽的量直做方到图合采理用,累同积时分把布灰函度数值作相变等换或, 近似地合
并到一起。
k
Sk T(rk) Pr(rj ) j0
长江大学电子信息学院
四. 直方图均衡化
例子
表 64×64大小的图像灰度级分布
假定有一幅像 素数为64×64,灰 度级为8级的图像, 将其进行均衡化处 理,其灰度级分布 表如右图所示:
长江大学电子信息学院
四. 直方图均衡化
直方图均衡化示意图
图(a) 原图灰度级直方图;图(b) 累积变换后的直方图; 图(c) 均衡化后的直方图;
3.直方图均衡化MATLAB的实现
显示灰度图像‘baby.jpg’的直方图
程序:I=imread(‘C:\baby.jpg’); subplot(1,2,1),imshow(I); subplot(1,2,2),imhist(I);
长江大学电子信息学院
四. 直方图均衡化
灰度图像的色彩直方图
长江大学电子信息学院
长江大学电子信息学院
四. 直方图均衡化
3.直方图均衡化MATLAB的实现
(1)imhist函数
功能:计算和显示图像的色彩直方图。 格式:imhist(I, n) imhist(X, map) [counts, x]=imhist(…) 说明:imhist(I, n)计算和显示灰度图像I的直方图,n为指定
设 式中r表,示N图为像一中幅像图素像的中灰像度素级的,总可数以;用nk概为率第密k级度灰函度数的Pr像(rk素)表;示
rk为第k个灰度级;Pr(rk)表Pr示(rk该)灰n度k 级/N出现的概率。因为Pr(rk)
给出了对rk出现概率的一个估计,所以直方图提供了原图的灰 度值分布情况,也可以说给出了一幅图像所有灰度值的整体 描述。
图像的直方图
长江大学电子信息学院
四. 直方图均衡化
3.直方图均衡化MATLAB的实现
(2)imadjust函数
功能 格式:J=imadjust(I, [low high],[bottom top], gamma) newmap=imadjust(map, [low high], [bottom top],
长江大学电子信息学院
三. 直方图的性质
(1) 它只反映该图像中不同灰度值出现的次数,而 未(反2)映任某一一幅灰图度像值,像都素能所唯在一的地位确置定。出也一就幅是与说它,对它应只 包的含直了方该图图,像但中不某 同一的灰图度像值,的可像能素有出相现同的概直率方,图而。丢 失了其所在位置的信息。
长江大学电子信息学院
四. 直方图均衡化
3.直方图均衡化MATLAB的实现
显示索引色图像的直方图 程序: clf;load trees;
subplot(1,2,1),imshow(I); subplot(122);imhist(X,map);
长江大学电子信息学院
四. 直方图均衡化
索引色图像的直方图
长江大学电子信息学院
用直方图均衡化进行图像增强
2011-3-22
目录
1. 灰度级直方图的概念 2. 直方图的计算 3. 直方图的性质 4. 直方图均衡化
一. 灰度级直方图的概念
1 灰度级直方图
灰度级的直方图是反应一幅图像中的灰度级与出现这 种灰度的概率之间的图形。
2 直方图的概念
设图像的灰度范围为[a,b],r为此灰度范围内 的任一灰度级,p(r)为这幅图像中灰度级为r的像 素出现的频率,可以看出p(r)是r的函数。该函数 的图形称为这幅图像的直方图。
gamma) 说明:J=imadjust(I, [low high], [bottom top], gamma)
返回图像I经直方图调整后的图像J,gamma为校正量 γ,[low high]为原图像中要变换的灰度范围,[bottom top]指定了变 换后的灰度范围;newmap=imadjust(map, [low high] [bottom top], gamma)调整索引色图像的调色板map。此时若 [low high]和[bottom top]都为2×3的矩阵,则分别调整R、 G、B 3个分量。
的灰度级数目,缺省值为256; imhist(X, map)计算和显示索引色图像X的直方图,map为调
色板; [counts, x]=imhist(...) 返回直方图数据向量counts和相应的
色彩值向量x,用stem(x, counts) 同样可以显示直方图。
长江大学电子信息学院
四. 直方图均衡化
四. 直方图均衡化
3.直方图均衡化MATLAB的实现
用stem函数显示图像直方图 程序: I=imread(‘trees.tif');
[c,x]=imhist(I); subplot(121);imshow(I); subplot(1,2,2),stem(x,c);
长江大学电子信息学院
四. 直方图均衡化