数学建模社区-数学中国

标题: 数字图像处理编程前言 [打印本页]

作者: softwaremercy    时间: 2006-3-22 02:54
标题: 数字图像处理编程前言

 

前言

当你看到那些用PhotoShopCorel PhotoPaint等软件绘制出的精美图片,并被它们表现出的神奇效果所折服时,是否曾想到做一个自己的图象处理软件?就象PhotoShop那样。“怎么可能,吹牛吧!”你一定会这么说。呵呵,别着急,待我慢慢讲来。

我是一名计算机系的博士研究生,一直对图象处理、多媒体的东西非常着迷,选修过不少这方面的课程,做过许多有意思的实验。我常常有这样一种冲动:把我做过的这些东西拿出来与大家一起分享,把有关的原理、算法、程序介绍给大家。

有这种想法的另一个原因是:数字图象处理(Digital Image Processing)技术是一门非常实用的技术。PhotoShop的核心就是图象处理技术。而目前有关这方面的资料太少了,已有的书不是内容太陈旧(还停留在DOS下的CGAEGA甚至汇编编程阶段),就是理论性太强,不容易懂,没有例子,看过以后也不知道该如何编程。我想:如果能够通过实际的例子来介绍这些图象处理算法,大家就很容易理解了。

这本书的侧重点是介绍数字图象编程,因此在内容的选择上也有所考虑,介绍的都是图象处理中的基本算法,大多可以用程序实现。而那些理论性很强,不易编程的算法,在这本书里是找不到的。书中的每一章可以看做是一个专题,后面都附有实际运行通过的源程序例子,全部程序都采用Windows编程(不过我并不打算介绍Windows的编程,这已经超出了本书的范围)

下面是本书的主要内容:

(1)    windows位图bitmap(bmp文件)的结构和调色版的概念;

(2)    图象的平移、旋转、镜象变换、转置变换、放缩;

(3)    图象的平滑(去噪声)、锐化;

(4)    图象的半影调、抖动技术;

(5)    图象的直方图修正、彩色变换;

(6)    图象的腐蚀和膨胀效果、细化算法、骨架的提取;

(7)    图象的边沿检测与抽取、hough变换、轮廓跟踪;

(8)    图象的检测、模板匹配;

(9)    图象的压缩编码、JPEG压缩编码标准;

(10) 图象处理编程工具lead.ocxDirectDraw及简单的多媒体编程技术。

这里面有一些非常有趣的应用。例如第4章介绍了一个将一幅图象转换成ASCII码的算法。对于喜欢上BBS的读者,这个算法是非常有用的。在第10章,介绍了一款非常实用的图象处理编程工具lead.ocx,利用它可以很快地开发出非常棒的图象处理软件。

学习了这些内容,你就掌握了图象处理中的一些最常用的算法。当然,这些内容还不足以编出象PhotoShop那样“牛”的软件来(人家毕竟是Adobe公司的看家宝贝嘛!)。但是要知道:万丈高楼平地起,很多非常复杂的功能可能是一些简单方法的叠加。相信你自己吧,你一定能够成为图象处理大师的。

是不是还有些信心不足?好,让我变一个戏法给你瞧瞧。

MSITStore:H:\200541352851453.chm::/2.files/image001.gif" width="454" vshapes="_x0000_i1025" alt=""/>

图1       普通文本

MSITStore:H:\200541352851453.chm::/2.files/image002.gif" width="452" vshapes="_x0000_i1026" alt=""/>

图2       抽取骨架后的文本

上面有两幅图,图1是未经处理的普通文字,经过骨架抽取,变成了图2的样子。这可不是用PhotoShop做的,而是我自己编的程序处理的。怎么样?还不错吧。

有人会问:“在编这样的程序之前有什么要求吗?”回答是:“有,只有两条:(1)c语言比较熟悉;(2)曾经编过Windows的程序。

有三点要说明:

(1)    文中出现的所有例子都在我自己的机器上编译运行通过,我使用的编程语言为Visual C++4.1,运行环境为中文Windows95Windows98。程序采用的是Windows API接口,全部采用C语言编写,并未用到C++的东西,所以也可以在其他的C编译器,如Borland CWatcom C下编译通过(可能有些函数的名称有些差别,所以建议使用Visual C++4.04.14.25.0版本都可以)。尽管在Windows3.x平台上也能编译运行这些程序,但强烈建议使用Windows95Windows98,因为32位的虚拟内存环境用起来爽极了。

(2)    既然是编图象的程序,当然要把机器的分辨率和颜色数调大一点了,这样显示出来的图象才显得漂亮(我用的是800*60016bits64K)。另外,装备一些好的图象软件是绝对必要的。我经常使用以下几种软件:

l         Sea,在DOS下的看图工具,而且可以很方便地转换图象格式;

l         AcdSee,一个小巧玲珑的看图软件;

l         Ulead IPhotoPlus,最大的优点是可以进行调色板的处理;

l         Windows PaintBrush,不要以为画笔的功能很弱,其实很多情况下还是很有用的;

l         PhotoShop,就不用我多说了。

(3)   图象处理的算法之中不可避免地要遇到一些数学的公式,霍金说过:“每多一个公式就要吓跑一半读者”,我将尽可能用通俗的语言将这些原理,公式讲解出来,力求做到公式尽可能的少;但遇到只有用公式才能讲明白的时候,我也决不回避,希望大家能耐着性子看下去。

本书主要参考的是我上数字图象处理课时的教材,作者是朱志刚老师,在此表示感谢。还要感谢我的好朋友袁昱,诸晓文和清华出版社的各位老师,没有他们的帮助,这本书的的出版是不可能的。

好了,不多说了,现在就让我们进入五彩缤纷的图象世界吧!


作者: eternangle    时间: 2007-10-18 23:39
本人水平不够 。
作者: bent2008    时间: 2007-10-20 19:02
优秀的视频网站,大家看看啊http://www.abab123.com/bbs/down.asp?html=707637





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5