图像处理中的数学修炼(第2版)
上QQ阅读APP看书,第一时间看更新

第1版前言PREFACE

2002年,国际计算机学会将当年度的图灵奖颁给了因提出RSA公钥加密算法而闻名于世的罗纳德·李维斯特、阿迪·萨莫尔和伦纳德·阿德曼三人。与RSA公钥加密体制密切相关的一个数学基础就是“中国剩余定理”,这也是现代数学中唯一以中国之名命名的定理,在某种程度上它也成为了中国古代数学成就的一个重要代表。

我国古代数学名著《孙子算经》中记载的“物不知数”问题是中国剩余定理的一个典型算例。后来,南宋数学家秦九韶在他的《数书九章》中推广了“物不知数”问题,提出了“大衍求一术”,为求解中国剩余定理问题提供了系统化的数学理论。西方世界直到18世纪,才对类似问题展开系统研究。德国的高斯得出类似“大衍求一术”的结论则到了19世纪,比秦九韶晚了近700年。

秦九韶曾在《数书九章》的序言中写道:“其用本太虚生一,而周流无穷,大则可以通神明,顺性命;小则可以经世务,类万物……若昔推策以迎日,定律而知气。髀矩浚川,土圭度晷。天地之大,囿焉而不能外,况其间总总者乎?”这段话译成现代汉语就是:“为了应用,人们要认识世界的规律,因而产生了数学。数学具有广泛的应用性。从大的方面说,数学可以认识自然,理解人生;从小的方面说,数学可以经营事务,分类万物……过去,历算家们用筹算推演,制定天文历法;发现自然规律,预测季节变化。用髀、矩测山高河深,用圭表量日影,以定时刻与节气。宇宙如此之大,尚且不能置于数学之外,那么宇宙之中的各种各样的事物,难道能离开数学吗?”由此可见,在古代,人们已经意识到了数学的重要性。

事实上,作为现代科学技术的重要基础,数学甚至也在直接或间接地影响着一个国家的综合国力。古今中外,许多名流志士,甚至很多本来并非数学家出身的人,都在著述或谈话中论及了数学之于国力的影响。例如,19世纪中国杰出的数学家李善兰在列强环伺、国势衰微的民族危难之际便感慨道:“呜呼!今欧罗巴各国日益强盛,为中国边患。推原其故,制器精也,推原制器之精,算学明也。”无独有偶,在万里之外的西方世界,拿破仑则更为直接地指出:“一个国家只有数学蓬勃发展,才能展现它国力的强大。数学的发展和至善与国家繁荣昌盛密切相关。”

回过头来看我们要谈的数字图像处理技术,数学对其的影响可能更为直接。众所周知,数字图像处理技术的研究与开发对数学基础的要求很高,一些不断涌现的新方法中,眼花缭乱的数学推导令很多期待深入研究的人望而却步。一个正规理工科学生大致已经具备了包括微积分、线性代数、概率论在内的数学基础。但在分析一些图像处理算法的原理时,好像感觉还是无从入手。实际中所涉及的问题主要归结为如下几个原因:①微积分、线性代数、概率论这些是非常重要的数学基础,但显然不是这些课程中所有的内容都在图像处理算法中有直接应用;②当你将图像处理和数学分开来学的时候,其实并没有设法建立它们二者的联系;③一些新方法或者所谓的高大上算法的基础已经超过了上面三个数学课程所探讨的基本领域,这又涉及偏微分方程、变分法、复变函数、实变函数、泛函分析等;④如果你不是数学科班出身,要想自学上面所谈到所有内容,工作量实在太过繁杂,恐怕精力也难以顾及。

长久以来,笔者结合自己对图像处理的学习和实践,大致总结了一部分图像处理研究中所需的数学原理基础。这些内容主要涉及微积分、向量分析、场论、泛函分析、偏微分方程、复变函数、变分法等。正如前面所提到的,如果要系统地学习上述这些数学理论的全部内容,对于一个非数学专业出身的人来说可能并不现实。于是笔者尝试总结、归纳、提取了上面这些数学课程在研究图像处理时最容易碰到也最需要知道的一些知识点,然后采取一种循序渐进的方式将它们重新组织到了一起。并结合具体的图像处理算法讨论来讲解这些数学知识的运用,从而建立数学知识与图像处理之间的一座桥梁。这部分内容主要是笔者日常研究和学习的一个总结。最初笔者也只是把这部分文章发到了自己的技术博客上,而且尽管此前笔者仅是断断续续地撷取了其中的一部分发到了网上,已经有读者表现出了浓厚的兴趣。不知不觉中,这个系列专栏的文章日积月累,内容渐渐丰富,个人感觉确实已经形成了一个相对比较完整的体系,于是便有了各位现在看到的这本书。

本书旨在对图像处理技术中所涉及的数学原理给出一个相对系统的讲述。全书共分8章,其中前4章主要是一些数学基础方面的内容,包括微积分、场论、变分法、复变函数、偏微分方程、泛函分析、概率论和统计学等。而这部分内容所给出的正是笔者认为在学习和研究图像处理技术时所必须的数学知识。当然,仅仅有理论仍然是不足的。本书的后半部分每章围绕一个主题详尽地介绍了一些实际应用中的图像处理技术,这部分内容也相当地凝练,涉及的子话题和具体算法十分丰富,其中很多都是当前研究的热点。更重要的是,在后4章里,读者将反复用到本书前半部分所介绍的数学原理。这样一来不仅能帮助读者夯实基础、强化所学,更能帮助读者建立一条连接数学和图像处理世界的桥梁,做到学以致用。

在阅读本书时,有两种方式可供读者选择。如果你数学基础尚可,那么可以试着从第5章开始看起,如果对一些遇到的术语、公式不甚了解,可以再翻回前面的内容,做有针对性的查阅。如果你的数学基础略显薄弱,或者曾经学过,但眼下所剩无几,那么你也可以从头看起,帮助自己建立一个相对完整而扎实的数学思维体系。当然由于本书的知识内容是高度凝练的,无法做到包山包海,因此仍然建议那些有一定微积分基础的人作为本书的目标读者。换言之,具有普通大专院校工科数学基础的读者就可以阅读本书。

万丈高楼平地起,基础不牢,地动山摇。很多人在学习和研究图像处理算法时都感觉有一道无形的屏障挡在眼前,总是力不从心。虽然自己也似乎看了很多资料,但是遇到一些实际问题时,又不知道该从何入手。或许,你所欠缺的恰恰是一个夯实的理论基础。正如笔者常说的一句玩笑话:“如果连基本的求导还不甚了解,那么即使傅里叶本人亲自来给你讲傅里叶变换,你也是无福消受的。”但如果你是图像处理的同道中人,或者你正在学习、研究和运用图像处理技术,那么笔者相信,你一定能从本书中有所收获!

总的来说,我不太喜欢翻开一本信息技术相关的工具书,里面密密麻麻的全部都是代码。所以,我希望能够在我的书中留下更多空间去讨论原理和思路。鉴于这并不是一本教导人们如何开发图像处理程序的书,或者更准确地说这是一本介绍数学在图像处理中的应用的书,所以我们并不要求读者阅读本书前已经掌握了某种特定的计算机语言。然而,在介绍某些比较晦涩的算法时,使用一些必要的代码来辅助解释也是很有必要的,而且有时这也的确是最直截了当最容易被接受的方式。所以本书中确实涉及某些用MATLAB编写的代码,但它们的占比是极其有限的。在有必要使用代码来演示说明算法原理的时候,我们也仅是给出了算法核心部分的相关代码。事实上,笔者更习惯于在博客中上传代码,而非把它们全部罗列到书中去挤占篇幅。如果读者对书中所涉及的算法实现有需要,可以从笔者在CSDN上的技术博客中(白马负金羁)下载到相应的源代码。更重要的是,如果读者在阅读本书时遇到一些困难,或者有一些需要跟作者沟通的问题时,都可以在该博客上通过留言的方式来跟笔者进行交流。

无冥冥之志者,无昭昭之明,无惛惛之事者,无赫赫之功。我衷心地希望本书的读者能够在图像处理领域既有昭昭之明,亦有赫赫之功。

最后虽然有点俗套,但笔者还是想说:自知论道须思量,几度无眠一文章。由于时间和能力有限,书中纰漏在所难免,真诚地希望各位读者和专家不吝批评、斧正。

左 飞

2017年1月