- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字图像处理抖动加网伽马校正直方图均匀化
2009301760060 王军
PAGE \* MERGEFORMAT 5数字图像处理
数字图像处理课程
王军 2009301760060
2011-11-23
一、实验名称:
数字图像处理编程实验之灰度图像层次变换和抖动加网处理。
二、实验设备及环境:
计算机,Visual C++编程环境。
三、实验要求:
1.用户界面设计:
用户界面可以自由设计,但应包括如下物件:窗体、菜单或命令按钮、图像显示框。
2.程序功能:
利用Visual C++编程环境编制图像处理程序,对一幅灰度图像进行灰度层次变换处理和抖动加网处理。包括:打开图像、曲线g值输入、图像灰度层次转换处理、图像存储、退出。实现图像抖动加网效果、图像存储、退出。
四、实验主要内容设计:
1.图像处理程序编制的总体方案:
首先,应该明白此次实习的主要目的——利用Visual C++编程环境编制图像处理程序,对一幅灰度图像进行灰度直方图统计与均衡化处理,实现对输入图像进行灰度层次变换,以及对输入图像进行抖动加网处理。
所以,应该首先设计一个可以打开BMP图片的程序,再在此程序中实现对图像的灰度直方图统计与均衡化处理,和灰度层次变换以及抖动加网处理。由于实验前已经得到可以打开BMP图片文件,所以,接下来主要在原程序的基础上进行修改,使它具有灰度层次变换以及抖动加网的功能。
2.程序用户界面的设计思路:
菜单:因为本程序主要对图像进行灰度层次变换以及抖动加网处理,其功能都是对图像进行数字处理,所以可以将它们的菜单合并在一个菜单目录下,并设置该菜单显示方式为“弹出”方式。如图:
将“图像校正”和“抖动加网”都置于“图像处理”菜单下。这样更有利于用户对程序的学习和操作。
图标:如果按Visual C++创建了一个默认的多文档程序,则运行时,窗口左上角图标为下图所示:
可以修改资源菜单中的lcon ,将主框架的图标换为我们需要的图标。如下是更换的图标:
对话框:由于在程序中,要实现g校正,需要对话框让用户指定g值,所以对话框的界面包括g值的填入,确定和取消,简单的设计如下:
3图像处理算法;
因为实验前??已经拥有了一个处理功能相似的程序,所以只需对原程序添加2个菜单项,并在菜单项中建立类向导,增添消息处理函数,并在各自的函数内加入可以实现“图像校正”和“抖动加网”的代码。
具体实现算法如下:
1. 图像校正算法:根据转换函数G1= G0g。为了保证G1和G0的值域一般为[0,255],实际算法为:,即将每一个像素点的灰度值都按上述公式改变,即可得到校正后的图片灰度层次变化。
2抖动加网算法:由于一幅灰度图像的灰度取值一般为[0,255],即一幅灰度图像中各个像素点的灰度值都在[0,255]内,如果给定一个固定的灰度值q,让该图像中每个像素点都与q进行比较,定义当该图像中的像素点a的灰度值小于q值时,令a的灰度值为0,反之,则为255.可以对原图片进行2值化。
根据这个原理,可以设想,如果事先定义一个256矩阵,让图像中每个像素点灰度值依次与该矩阵对应位置的值进行比较,大于该值就取255,小于则取0,这样同样可以实现加网效果。
但实际一般设计一个16矩阵,如:,将源图像灰度值域进行转换,转换为[0,15]。根据矩阵D与源图像进行匹配,如果大于转换后对应的灰度值,则令该像素点的灰度值为255,否则赋值0,完成抖动加网。
4. 遇到的问题和解决过程:
实习中,遇到的问题是,在g校正中,在实现公式:时,没有将表示清楚,忘记了“整除要加上小数点,否则为0”,使得图像经过校正运行后老是出现黑屏,改后运行正常。
5结果分析:
实验结果,不管是“g校正”还是“抖动加网”,都让我非常满意,特别是抖动加网,效果感觉就像是将一幅连续调图像转换为半色调图像一样,让人觉得很有趣。如下:抖动加网前后的图片:
g校正的前后效果图如下:
文档评论(0)