没有合适的资源?快使用搜索试试~ 我知道了~
Visual C++实现数字图像增强处理
需积分: 9 21 下载量 177 浏览量
2009-02-24
22:53:16
上传
评论
收藏 178KB DOC 举报
温馨提示
试读
16页
对于一个图像处理系统来说,可以将流程分为三个阶段,在获取原始图像后,首先是图像预处理阶段、第二是特征抽取阶段、第三是识别分析阶段。图像预处理阶段尤为重要,如果这阶段处理不好,后面的工作根本无法展开
资源推荐
资源详情
资源评论
图像处理实现数字图像增强处理
2008-04-12 16:55
Visual C++实现数字图像增强处理
前言
对于一个图像处理系统来说,可以将流程分为三个阶段,在获取原始图像后,首先是
图像预处理阶段、第二是特征抽取阶段、第三是识别分析阶段。图像预处理阶段尤为重
要,如果这阶段处理不好,后面的工作根本无法展开。
在实际应用中,我们的系统获取的原始图像不是完美的,例如对于系统获取的原始图
像,由于噪声、光照等原因,图像的质量不高,所以需要进行预处理,以有利于提取我们
感兴趣的信息。图像的预处理包括图像增强、平滑滤波、锐化等内容。图像的预处理既可
以在空间域实现,也可以在频域内实现,我们主要介绍在空间域内对图像进行点运算,它
是一种既简单又重要的图像处理技术,它能让用户改变图像上像素点的灰度值,这样通过
点运算处理将产生一幅新图像。下面我们开始介绍与图像点运算的相关知识。
一、图像的直方图
图像直方图是图像处理中一种十分重要的图像分析工具,它描述了一幅图像的灰度级
内容,任何一幅图像的直方图都包含了丰富的信息,它主要用在图象分割,图像灰度变换
等处理过程中。从数学上来说图像直方图是图像各灰度值统计特性与图像灰度值的函数,
它统计一幅图像中各个灰度级出现的次数或概率;从图形上来说,它是一个二维图,横坐
标表示图像中各个像素点的灰度级,纵坐标为各个灰度级上图像各个像素点出现的次数或
概率。如果不特别说明,本讲座中的直方图的纵坐标都对应着该灰度级在图像中出现的概
率。我们的例子是在一个对话框中显示一个图像的直方图,为实现该目的,我们定义了一
个名为的对话框类用来显示图像的直方图,具体实现代码和效果图如下(关于代码实
现部分可以参考笔者 年在天极网上发表的一篇 实现数字图像处理的文章):
直方图对话框构造函数;
!!"
#$%&##'" 为定义的用来显示直方图的对话框类;
(
)*%)+对话框初始化阶段设置图像的宽和高为;
,
对话框重画函数;
-$."
(
/00+矩形区域对象;
+得到图片框的窗口指针;
1#%&2)0"+得到 对话框内的2控件的指针;
4()0 为放置在对话框上的一个0控件,并讲类型设置
为2)。
51/060"+得到2控件窗口的视区域;
+
#0"+得到2控件的设备上下文;
4画直方图的 7、8 轴;
09:$-$'09*%)""+
09!$09)"'09*%)""+
09:$-$'09*%)""+
09!$'"+
4画直方图,2;<是的内部数组变量,存放的是图像各个灰度级出现的概
率;该数组的各个分量在 显示具体图像的直方图时设置;
=$+>?@+"根据图像上的各个灰度级出现的概率,在坐标上对应的画出一根
直线,从而各个表示各灰度级出现概率的直线构成了图像的直方图;
(
09:$-$'09*%)""+
09!$'09*%)"09*%)"2;<A""+
4此处 2 分量乘以A是为了放大个灰度级上对应的出现概率直线,增强显示
效果;
,
,
-$.:$:$- &%'$$"
(.:$:$- 函数处理鼠标消息,显示当前鼠标所在直方图上的灰度值等信息;
'7+定义两个窗口对象;
$$+定义个一个点对象;
$$+存放当前鼠标的位置信息;
/00+矩形对象;
B%%+字符串对象;
1#%&2)0"+得到显示直方图的框架窗口对象指针;
71#%&2 :"+得到指向文本框对象( :)窗口的指
针;
51$C/060"+获取 窗口对象窗口区域位置;
4屏幕坐标转换为客户区坐标;
B0$60"+
4判断当前鼠标是否指在直方图内;
=09&/0$""
(
7$9709=+
4当前鼠标位置减去区域的起始位置恰好为当前鼠标所指位置所表示的灰度级;
%9$2D'7"+
4显示当前位置对应的图像的灰度级;
75B$C7!B/"%"+
,
#$%.:$:$-%'$"+
,
-$#EC.&2%)$%2"
4在程序的视类对象内处理显示图像直方图的函数;
(
#E#$0#$01#$02"+
*#&F)E+
)E#$051*#&F"+
F&:G&.*HG#H/#&F*+位图信息头结构指针;
FIH#&FF+指向位图像素灰度值的指针;
#&F*F&:G&.*HG#H/"1$E!$0J)E"+得到图像的位图头信息
#&FFFIH"#&F*K$=F&:G&.*HG#H/"
?@K$=/1FL G#"+
4获取图像像素值
$%+直方图对话框模板对象;
'M+
C&2%)#&F*5E)+
C&2%*%)#&F*5E*%)+
4;<数组用来存放各个灰度级出现的概率;
N$;?@<+
=$+>?@+"初始化数组;
(
;<+
,
4统计各个灰度级出现的次数;
=$+ (
=$M+M (
;#&FF&#*FIHBC&2%)O"M"<+
,
4统计各个灰度级出现的概率;
=$+>?@+"
(
;<;<C&2%*%)C&2%)"+得到每个灰度级的出现概率;
2208$%92''?@K$=N$""+
,
,
$%9#$:$"+显示直方图对话框;
,
+
,
"!HG 图像 (E)直方图
图一
上图为 !HG 的原始图像和其对应的直方图,在(E)图中的 A? 表示当前鼠标在直
方图中所指的位置对应的灰度级为 A?。从该直方图可以看出,!HG 图像的灰度主要分
布在中高灰度级上,在低灰度级上图像的像素数几乎为零。
二、图像增强
影响系统图像清晰程度的因素很多,例如室外光照度不够均匀就会造成图像灰度过于
集中;由 #(摄像头)获得的图像经过 G#(数模转换,该功能在图像系统中由数字采
集卡来实现)转换、线路传送都会产生噪声污染等等。因此图像质量不可避免的降低了,
轻者表现为图像不干净,难于看清细节;重者表现为图像模糊不清,连概貌也看不出来。
因此,在对图像进行分析之前,必须要对图像质量进行改善,一般情况下改善的方法有两
类:图像增强和图像复原。图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特
征有选择的突出,而衰减不需要的特征,它的目的主要是提高图像的可懂度。图像增强的
方法分为空域法和频域法两类,空域法主要是对图像中的各个像素点进行操作;而频域法
是在图像的某个变换域内,对图像进行操作,修改变换后的系数,例如付立叶变换、#
变换等的系数,然后再进行反变换得到处理后的图像。图像复原技术与增强技术不同,它
需要了解图像质量下降的原因,首先要建立降质模型,再利用该模型,恢复原始图像。
本期讲座我们主要介绍各种增强技术在图象处理系统中的实际应用。
1.灰度变换
简单的说,灰度变换就是指对图像上各个像素点的灰度值 7 按某个函数 ()变换到
8。例如为了提高图像的清晰度,需要将图像的灰度级整个范围或其中某一段(G,F)扩
展或压缩到(G ,F );需要显示出图像的细节部分等都要求采用灰度变换方法。灰度变
换有时又被称为图像的对比度增强或对比度拉伸。假定输入图像中的一个像素的灰度级为
,经过 "函数变换后输出图像对应的灰度级为 ,其中要求 和 都要在图像的灰
度范围之内。根据 T()形式,可以将灰度变换分为线性变换和非线性变换。具体应用中采用
何种 T(),需要根据变换的要求而定。
对于图像的灰度变换,我们这里介绍一种稍微复杂一点的方法,既直方图均衡化。直
方图均衡化是灰度变换的一个重要应用,广泛应用在图像增强处理中,它是以累计分布函
数变换为基础的直方图修正法,可以产生一幅灰度级分布具有均匀概率密度的图像,扩展
了像素的取值动态范围。若像素点的原灰度为 R,变换后的灰度为 S,需要注意的是 R、S
剩余15页未读,继续阅读
资源评论
whaif007
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- KIS旗舰版数据库表结构
- STM32F103C8T6模拟IIC控制4针0.96寸OLED显示屏
- 基于python的多摄像头协同分析的单目标跟踪算法/系统
- 微信小程序源码 数字时钟画布应用 - 创意时间显示工具
- 基于Python的简易微信订餐系统实现
- 基于C++实现KCF算法,用于对框选目标进行跟踪,可运行于linux或类linux系统
- 微信小程序源码 滑动选项卡组件 - 增强移动应用用户体验
- 基于mediapipe在unity中实现姿态追踪python源码+使用说明(高分项目).zip
- TortoiseSVN1.14.5.29465及语言包LanguagePack-1.14.5.29465-x64-zh-CN
- 微信小程序源码 果库 - 一站式水果信息与购买平台
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功