通过对灰度直方图进行修正的理论、建模、算法和程序的论述说明如何实现图象的灰度直方图均衡化,达到图象增强的目的.

廛围抖蕉

c语

言实现图像灰度均衡化

郭韶斌

(北京交通大学,北京市

100044)

‘脯要】通过时灰度直方图进行修正的理论、建模、算法和程亭的论述穰明如何实现图象的灰度直方图均衡化,达到图象增强的目的。

p键词】均衡化;灰度;算法流程

图像的灰度直方图均衡化是图像增强技术的一种,它基于图像空域的方法,对图像的处理是在图像所在的空间直接进行的,更确切地说对图像的处理是对单个像素进行而和其它的像素无关。

1理论和建模

1.1理论

直方图均衡化是通过增加图象灰度值的动态范围,增加对比度,以致图象具有较大的反差,大部分细节比较清晰。而它的实质是将多个频数不同的灰度级合并到同一个灰度级,以换取对比度的扩大。在图象增强处理中一般都采用如下公式:

g睁,力=r矿仁,力J

(1)

来实现

以7'表示转换算子:,(.)和g(.)表示转换前后某一像素的灰

度值,通常以u表甜(.),p表示g(.)。

根据上述说明公式f1)变为:

p=T,功

(2)而作为均衡化公式还需要满足如下条件:

{1)?“1)在D≤缸≤三一j范围内是个单值递增函数;(2)对0≤u《己一1有D≤r(M)≤L—J:忆表示为灰度值的级

)

条件说明:保证图象灰度级次序不变、灰度值动态范围一致。12建模

设模型函数为累积分布函数(cumulativedis—tributionfunction,F》:

r㈨=IQ。lil!)幽《D≤Ⅱ≤|上一刀

(3)

5

式中QⅡ∽是一概率密度函数表示灰度级分布。

将公式归一化:

O≤u≤J(u=O表示为黑色,u=l表示为白色)将公式离散化:

X鼻

P日¨=乙’niF’,’一

n乙Q.(啦)

l=0

i=0

移≤毗≤j,k=O,j,…,£一j)

{4)

其中地表示灰度级为耻的离散值,m表示灰度级为啦的像素的数目,n表示象素的总数目。

根据(4)式可以对直方图进行均衡化,但我们知道在具体用计算机实现时,由于灰度级的离散性,必需将不同的啦合并成同一个灰度级。构造如下公式来实现:

PFint((£一j}&×+I嘲

(5)

2算法和程序21算法流程

1》原始直方图各灰度级象素n“2)计算原始直方图各灰度级的概率:3)输出原始直方图;4)计算累积直方图;5)合并不同的灰度级:6)输出新的直方图。

22程序实现

使用C语言实现上述算法,程序如下:

voidHisteq

fro=+日6硼/*ltb蟛指向一个存放的组V

,妇£,J,i;

floatq,后,total,~,气;

5cd矽r.%,,&L^产£为灰度级的级数Vs=u=Hbu秭;

total=O;

for仃=D:,<=£+J;_,++).

total=total+u肌/*tota/存放象素的总数目V

.for《o=o;j‘=L+l;j++)ls01=um/total;

p而矿扫脚;,产输出原始直方图所具有的数据V

参'T《o=l;j‘=L+l;j++)

韬rin唾Iscl—l职s西1=sb{+s

0一味}产计算雾职直责图’,

forD=D;.,<=£+J;_,++J

s(j1=bul《N-/)4sbl+Q5b产合并不同的灰度级宰/

.,=D;

while仃<=9

|t弓;

k=s01;

g=0;=,hile

fs掰=戤

fq=q+u锄li++;,歹=i;

printf御o‘回;产输出新的直方图所具有数据宰/

,,

3使用上述算法和程序应用举例

例题:设有1幅256×256,8bit灰度图像,设L---7,存放的数elent[71={10473,16350,7683,8192,6919,4763,,139刁求出所对应的原始直方图,累积直方图,新的直方图,实

Histeq(pog&ele叫结果:如图(1)、

(2)、

(3)、

(4)。

(下转第6l页

)

数CD组为:9764际均衡化的结果。解:调用

基于c语言图像灰度拉伸算法实现,c语言实现图像灰度均衡化相关推荐

  1. Win8Metro(C#)数字图像处理--2.31灰度拉伸算法

    Win8Metro(C#)数字图像处理--2.31灰度拉伸算法 原文:Win8Metro(C#)数字图像处理--2.31灰度拉伸算法  [函数名称] 灰度拉伸函数GrayStretchProces ...

  2. 灰度拉伸python,Python OpenCV实例:图像灰度拉伸

    Python OpenCV实例:图像灰度拉伸 Python OpenCV实例:图像灰度拉伸 为什么80%的码农都做不了架构师?>>> #coding:utf-8 ''' 灰度拉伸 定 ...

  3. 四阶龙格库塔c语言,四阶龙格库塔算法的C语言实现

    解微分方程 2001年3月焦作大学学报 JOURNALOFJIAOZUOUNIVERSITY№ 1Mar.2001第1期 四阶龙格一库塔算法的C语言实现 毋玉芝 (焦作财会学校) 摘要本文叙述了四阶龙 ...

  4. c语言数据交换的算法流程图,C语言冒泡排序算法浅析

    C语言泡排冒序算浅析 法中刘旭 ( 江师范丽等专高学科校数与计算机学科学系 ) [ 摘]要泡冒排序算法 C语言常见是排序算法之,一该算法的优点 逻辑是清晰,代码简洁,点缺是时复杂度间高较本文介.绍了统 ...

  5. c语言程序设计的常用算法,《C语言程序设计的常用算法.doc

    <C语言程序设计的常用算法 C语言程序设计的常用算法 算法(Algorithm):计算机解题的基本思想方法和步骤.算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要 ...

  6. r语言kmodes_聚类分析——k-means算法及R语言实现

    我们知道『物以类聚,人以群分』,这里并不是分类问题,而是聚类问题. 两者主要区别在于,分类是将一组数据根据不同的类区分,已经知道有哪些类,也就是数据已经有了类的标签.而聚类是一种事先不知道有多少类,通 ...

  7. c语言成绩存储的算法思想,C语言算法总结,非常精辟

    <C语言算法总结,非常精辟>由会员分享,可在线阅读,更多相关<C语言算法总结,非常精辟(9页珍藏版)>请在人人文库网上搜索. 1.c语言算法摘要2 .牛顿迭代a的平方根[思想摘 ...

  8. c语言微分方程离散化,PID算法的C语言实现二 PID算法的离散化

    上面一篇已经讲述了PID的流程!这里对上面做一些补充说明: 1.由上一篇原理图框架我们知道PID控制其实是对偏差的控制: 2.如果偏差为0,则比列控制就不起作用: 3.积分环节主要用来消除静差,就是系 ...

  9. 归并排序c语言实验报告,归并排序算法及其C语言具体实现

    本节介绍一种不同于插入排序和归并排序,其排序的实现思想是先将所有的记录完全分开,然后两两合并,在合并的过程中将其排好序,最终能够得到一个完整的有序表. 例如对于含有 n 个记录的无序表,首先默认表中每 ...

最新文章

  1. 搞定Linux只要半年
  2. mysql 完整的增删改查 和单表查询
  3. 信息系统项目管理师-组织级项目管理与大型项目管理知识点
  4. element table 表格设置max-height 没有出现滚动条,多渲染了一列。
  5. opencv 运动追踪_足球运动员追踪-使用OpenCV根据运动员的球衣颜色识别运动员的球队
  6. 全向轮底盘磁导轨寻迹
  7. (3.5)HarmonyOS鸿蒙多按钮点击事件
  8. pytorch torch.triu
  9. 为什么优秀的程序员也是优秀的设计师
  10. Kubernetes之持久化存储
  11. golang 定义一个空切片_Golang slice切片操作之切片的追加、删除、插入等
  12. github Repository not found 解决办法
  13. Mobile Widget是一种新的手机应用形式吗
  14. LMAX Disruptor——一个高性能、低延迟且简单的框架
  15. sqlserver替换特殊字符
  16. unity 手机上获取手指触摸位置_我们到底触摸到了什么?揭秘智能设备触摸屏原理...
  17. 并发编程常见面试题总结五
  18. 虎牙tv是用php写的吗,huya虎牙php_麦麦同学
  19. (zotero+坚果云+pdf expert+欧陆词典)实现PC平板同步阅读管理科研文献(完美教程)
  20. zt 李鸿章听过《彩云追月》?

热门文章

  1. Android MVVM封装,MVVM: 这是一个android MVVM 框架,基于谷歌dataBinding技术实现
  2. python中的os.listdir()方法、os.path.isdir()方法
  3. 2021华为软件精英挑战赛(杭厦第20名)
  4. 变分模态分解 python_浅谈VMD(变分模态分解)
  5. IOS上传app store审核截图规格要求
  6. iphone SLO-MO, TIME-LAPSE, VIDEO,PANO
  7. 正则表达式 Exel单元格
  8. CreateFileMapping 、MapViewOfFile、UnmapViewOfFile函数用法及示例
  9. matlab怎么求三次微分,Matlab – 求解三阶微分方程
  10. 清晰weblog日志,过滤不合法的记录