图像处理用到概率论_图像处理和概率论 - CSDN
精华内容
参与话题
  • 数学在计算机图形学中的应用

    千次阅读 2013-09-24 17:41:09
    狭义的计算机图形学指的是传统的三维建模,绘制,动画等,而广义的计算机图形学还包括计算机图像处理,视频处理,计算机视觉和机器学习等领域。 答案取决于你想在计算机图形学领域钻研多深: l 如果仅仅使用周围...

    转自:http://www.math.zju.edu.cn/ligangliu/Resources/Graphics/math_for_graphics_Turk_CN.htm

    学习计算机图形学需要多少的数学?”这是初学者最经常问的问题。狭义的计算机图形学指的是传统的三维建模,绘制,动画等,而广义的计算机图形学还包括计算机图像处理,视频处理,计算机视觉和机器学习等领域。

    答案取决于你想在计算机图形学领域钻研多深

    l         如果仅仅使用周围唾手可得的图形软件,如Photoshop, 3D Studio Max, Maya, AutoCAD等,你不需要知道多少数学知识;通过掌握简单的概念和阅读使用教程你就能使用这些软件的基本功能;但是如果你想精通这些软件,你还是需要学习计算机图形学的一些入门知识的;

    l         如果想学习计算机图形学的入门知识,你至少需要掌握代数,三角学和线性代数的一些基本知识;这也是要成为图形软件高手所必需掌握的;

    l         如果想成为一名计算机图形学的研究工作者,那么对数学的学习将是“活到老,学到老”。重要的是,从以前看似枯燥的数学到看到它的实际应用的过程中,你会更容易享受数学的美妙。在你不断进行计算机图形学的研究的过程中,你会感觉到你的数学知识越来越不够用,从而真正理解“数学不是没有用,而是不够用!”。

    如果你并不特别喜欢数学,是否仍有在计算机图形学领域工作的机会?是的,计算机图形学的确有一些方面不需要考虑太多的数学问题。你不应该因为数学成绩不好而放弃它,如果你对计算机图形学具有强烈兴趣和好奇心的话,而且你还特别喜欢和擅长计算机编程的话。不过,如果学习了更多的数学知识,那么你将在研究课题上有更多的选择余地。如果你要做很好的计算机图形学的研究工作,则建议你还是多学习些数学。

    对于在计算机图形学中哪些数学才是重要的?这个问题是没有明确的答案的。这领域里不同的方面要求掌握不同的数学知识,也许兴趣将会决定了你的方向。那些基本的数学知识和分析能力是最重要的,而其他的数学则是根据你所从事的方向相关。

    下面将介绍我们认为对于计算机图形学有用的数学。别以为想成为一名计算机图形学的研究者就必须精通各门数学!在大学里,你所学的那些数学看起来都很抽象,枯燥无味,这是因为你并不知道它们的用处,甚至连讲课的老师也不知道,而你们的目的只是记住那些定理和公式,考个好分数。与大学学习数学不一样的是,你在计算机图形学的学习和研究过程中会感受到数学的用处和美妙,这时你学习数学的目的将更加明确,兴趣将更加浓厚,学习方法将更加有效。因为你是在使用数学的过程中在学习数学!想想看你是如何学会中文说话的?为了对用于计算机图形学的数学有一个全面的看法,这里特地列出了很多方面。注意,不是这里提到的每个方面你都必须熟悉,许多研究工作者从不需要考虑下面提到的某些数学知识,成功的研究者总是将某一方面的数学知识和数学工具用到极致!

    最后,虽然读了这篇文章后,你应该会对数学在计算机图形学中的应用有所了解,不过这也是一家之言。也许你应该阅读更多的此类文章,或者至少从其他从事计算机图形学工作的人那里了解不同的学习重点。

    初等代数和三角学

    对于计算机图形学的初学者来说,高中的代数和三角学可能是最重要的数学。日复一日,我从简单的方程解出一个或更多的根。我时常还要解决类似求一些几何图形边长的简单三角学问题。代数和三角学是计算机图形学的最基础的知识。

    那么高中的几何学怎么样呢?可能让人惊讶,不过在多数计算机图形学里,高中的几何学并不经常被用到。原因是许多学校教的几何学实际上是如何建立数学证明的课程。虽然证明题对提高智力显然是有效的,但对于计算机图形学来说,那些与几何课有关的定理和证明并不常被用到。如果你毕业于数学相关领域(包括计算机图形学),就会发现虽然你在证明定理,不过这对开始学习图形学不是必要的。

    如果精通代数和三角学,就可以开始读一本计算机图形学的入门书了。下一个重要的用于计算机图形学的数学——线性代数,多数此类书籍至少包含了一个对线性代数的简要介绍。

    推荐的参考书:

    Computer Graphics: Principles and Practice

    James Foley, Andries van Dam, Steven Feiner, John Hughes

    Addison-Wesley

    线性代数

    线性代数的思想贯穿于计算机图形学。事实上,只要牵涉到几何数值表示法,就常常抽象出例如x,y,z坐标之类的数值,我们称之为矢量。计算机图形学自始至终离不开矢量和矩阵。用矢量和矩阵来描述旋转,平移,或者缩放是再好不过了。高中和大学都有线性代数的课程。只要想在计算机图形学领域工作,就应该打下坚实的线性代数基础。我刚才提到,许多图形学的书都有关于线性代数的简要介绍——足够教给你图形学的第一门课。

    数学分析(微积分学)

    微积分学是高级计算机图形学的重要成分。如果打算学习研究图形学,我强烈建议你应该对微积分学有初步认识。理由不仅仅是微积分学是一种很有用的工具,还有许多研究者用微积分学的术语来描述他们的问题和解决办法。另外,在许多重要的数学领域,微积分学被作为进一步学习的前提。学习了基本代数之后,微积分学又是一种能为你打开多数计算机图形学与后继的数学学习之门的课程。

    微分几何

    微分几何学研究描述和控制光滑曲线,曲面的方程。如果你要计算出经过某个远离曲面的点并垂直于曲面的矢量(法向矢量)就会用到微分几何学。让一辆汽车以特定速度在曲线上行驶也牵涉到微分几何学。有一种通用的绘制光滑曲面的图形学技术,叫做“凹凸帖图”,这个技术用到了微分几何学。另外,要研究曲面的一些几何性质,如曲率、可展性、测地性质等,需要较多的微分几何知识。如果要着手于用曲线和曲面来创造形体(在图形学里称之为建模),你至少应该学习微分几何学的基础。

    数值方法(计算方法)

    几乎任何时候,我们在计算机里用近似值代替精确值来表示和操作数值,所以计算过程总是会有误差。而且对于给定的数值问题,常常有多种解决的方法,一些方法会更块,更精确或者对内存的需求更少。数值方法研究的对象包括计算方法科学计算等等。这是一个很广阔的领域,而且我将提及的其他几门数学其实是数值方法的一些分支。这些分支包括抽样法理论,矩阵方程组,数值微分方程组和最优化。

    推荐的参考书:

    Numerical Recipes in C++: The Art of Scientific Computing

    William Press, Saul Teukolsky, William Vetterling and Brian Flannery

    Cambridge University Press

    抽样法理论和信号处理

    在计算机图形学里我们反复使用储存在正规二维数组里的数字集合来表示一些对象,例如图片和曲面。这时,我们就要用抽样法来表示这些对象。如果要控制这些对象的品质,抽样法理论就变得尤为重要。抽样法应用于图形学的常见例子是当物体被绘制在屏幕上时,它的轮廓呈现锯齿状的边缘。这锯齿状的边缘(被认为是混淆现象)是非常让人分散注意力的,用抽样法中著名的技术例如回旋,傅立叶变换,空间和频率的函数表示就能把这个现象减少到最小。这些思想在图像和音频处理领域是同样重要的。

    推荐的参考书:

    The Fourier Transform and Its Applications

    Ronald N. Bracewell

    McGraw Hill

    矩阵计算

    计算机图形学的许多问题要用到矩阵方程组的数值解法。一些涉及矩阵的问题包括:找出最好的位置与方向以使对象们互相匹配(最小二乘法),创建一个覆盖所给点集的曲面,并使皱折程度最小(薄板样条算法),还有材质模拟,例如水和衣服等。在图形学里矩阵表述相当流行,因此在用于图形学的数学中我对矩阵方程组的评价是很高的。

    推荐的参考书:

    Matrix Computations

    Gene Golub and Charles Van Loan

    Johns Hopkins University Press

    物理学(物理模拟)

    物理学显然不是数学的分支,它是自成一家的学科。但是在计算机图形学的某些领域,物理学和数学是紧密联系的。在图形学里,牵涉物理学的问题包括光与物体的表面是怎样互相影响的,人与动物的移动方式,水与空气的流动。为了模拟这些自然现象,物理学的知识是必不可少的。这和解微分方程紧密联系,我将会在下一节提到微分方程。

    微分方程的数值解法(有限元方法)

    我相信对于计算机图形学来说,解微分方程的技巧是非常重要的。像我们刚才讨论的,计算机图形学致力于模拟源于真实世界的物理系统。波浪是怎样在水里形成的,动物是怎样在地面上行走的,这就是两个模拟物理系统的例子。模拟物理系统的问题经常就是怎样解微分方程的数值解。请注意,微分方程的数值解法与微分方程的符号解法是有很大差异的。符号解法求出没有误差的解,而且时常只用于一些非常简单的方程。有时大学课程里的微分方程只教符号解法,不过这并不会对多数计算机图形学的问题有帮助。

    在对物理系统的模拟中,我们把世界细分为许多表示成矢量的小元素。然后这些元素之间的关系就可以用矩阵来描述。虽然要处理的矩阵方程组往往没有很精确的解,但是取而代之的是执行了一系列的计算,这些计算产生一个表示成数列的近似解。这就是微分方程的数值解法。请注意,矩阵方程的解法与微分方程数值解法的关系是很密切的。

    最优化

    在计算机图形学里,我们常常为了期望的目标寻求一种合适的描述对象或者对象集的方法。例如安排灯的位置使得房间的照明看起来有种特殊的感觉,动画里的人物要怎样活动四肢才能实现一个特殊的动作,怎样排版才不会使页面混乱。以上这些例子可以归结为最优化问题。十年前的计算机图形学几乎没有最优化技术的文献,不过最近这个领域越来越重视最优化理论。我认为在计算机图形学里,最优化的重要性将会日益增加。

    概率论与统计学

    计算机图形学的许多领域都要用到概率论与统计学。当研究者涉足人类学科时,他们当然需要统计学来分析数据。图形学相关领域涉及人类学科,例如虚拟现实和人机交互(HCI)。另外,许多用计算机描绘真实世界的问题牵涉到各种未知事件的概率。两个例子:一棵成长期的树,它的树枝分杈的概率;虚拟的动物如何决定它的行走路线。最后,一些解高难度方程组的技巧用了随机数来估计方程组的解。重要的例子:蒙特卡罗方法经常用于光如何传播的问题。以上仅是一部分在计算机图形学里使用概率论和统计学的方法。

    另外,在机器学习和统计学习中,需要非常多和深入的统计学知识。

    拓扑学

    用一句话来形容拓扑学,它研究油炸圈饼与咖啡杯为什么在本质上是相同的。答案是他们都是只有一个洞的曲面。对于计算机图形学来说,拓扑学的形式(符号表示法)是表达思想的简便方法,常用于分析一些曲面的性质,在形状分析、形状匹配和搜索中得到应用。

    黎曼几何

    黎曼几何是研究流形曲面上的微积分与微分几何。不同与三维欧氏空间,它研究的曲面是在流形曲面上,其中用到不同的度量。这部分数学知识有点抽象,但是同样有效地被用到计算机图形学中。如共形几何理论就被发展起来在计算机图形学中得到广泛的应用。

    抽象代数

    抽象代数就是研究群论,环论和域的代数学。相对于线性代数,内容也比较抽象。在计算机图形学上也时有用到。

    计算几何

    计算几何学研究如何用计算机高效地表示与操作几何体。典型问题如,碰撞检测,把多边形分解为三角形,找出最靠近某个位置的点,这个学科包括了运算法则,数据结构和数学。图形学的研究者,只要涉足创建形体(建模),就要大量用到计算几何学。

    推荐的参考书:
    Computational Geometry in C
    Joseph O'Rourke
    Cambridge University Press

     

    Computational Geometry: An Introduction
    Franco Preparata and Michael Shamos
    Springer-Verlag

     

    其他几何学

    一些其他的几何学,如《仿射几何》、《射影几何》在计算机图形学的某些问题上用得比较多,对工程具有较大的促进应用。

    总结:数学应用和数学理论

    对于图形学来说,以上提到的许多数学学科都有个共同点:比起这些数学的理论价值,我们更倾向于发掘它们的应用价值。不要惊讶。计算机图形学的许多问题和物理学者与工程师们研究的问题是紧密联系的,并且物理学者与工程师们使用的数学工具正是计算机图形学研究者们使用的。多数研究纯数学理论的学科从不被用于计算机图形学。不过这不是绝对的。请注意这些特例:分子生物学正利用节理论来研究DNA分子动力学,亚原子物理学用到了抽象群论。也许有一天,纯数学理论也能推动计算机图形学的发展,谁知道呢?

    事实上,文章中所提到一些数学分支,按照我国的教育体制,在数学系本科的学生(或者硕士研究生阶段的理工科学生)基本都能接触到。但是大学所学习的数学比较偏重于证明以构建完备的数学理论框架,而不太注重实际的使用,现在的大学教师授课的方式也是这样。

    我认为,学习数学最好的方式就是使用它,使用它越多,你就觉得它越有用,越有趣,学得就越好,也越快,越扎实。当然,很少有人能精通全部的知识,对于计算机图形学的学习和实践,应当采取掌握较为宽广的数学知识基础,在需要的时候,对相关的数学知识再进行深入的学习和挖掘;不要因为自身数学知识的匮乏而沮丧,更不能因此而敌视数学,保持对计算机图形学强烈的兴趣和乐观上进的学习态度是学习计算机图形学的关键。

    还有一点需要指出的是,在学习计算机图形学的过程中,你会发现各个方面的数学知识都会被用到,因此你掌握的数学知识会比较全面,也知道如何在实际中应用。这可能是应用数学在所有学科得到最好的体现。相反,一些做纯理论的数学工作者,掌握的数学知识就是他们所研究的一块,而对其他的数学知识掌握得就不够好,他们做得比较深入。当然,做应用数学和理论数学都有值得敬仰的地方,一个侧重在实际应用,而另一个侧重在理论深度,但要做好都不是很容易。数学说到底还是要学老用的。相对来讲,做计算机图形学能看到学到的数学在实际中所用了,“所用即所学”。试想一下,当你能看到自己做的美妙的东西被别人看到且被敬仰的时候,你的成就感一定会很大!

    最后说一点的就是,学习计算机图形学和从事计算机图形学的研究,除了数学基础外,还需要较强的计算机编程能力,你务必要掌握和熟练一门编程语言,一般建议C/C++,因为你要实现出你的想法,你必须编程去实现出来,做出漂亮的结果。编程也是很有趣的,只要你有兴趣,提高是非常快的!当然,这里我不阐述如何提高编程的能力和水平的方法。“数学”和“编程”,两手都要抓,两手都要硬!提醒大家一点的是,如果你对编程兴趣不大,或者就不愿编程,那你就不适合选择计算机图形学,可能更适合选择其他方向,比如统计学或理论数学。

    注:本文由Greg Turk. “Mathematics for Computer Graphics, August 1997.” 及网上的中文翻译整理扩充而得。

    展开全文
  • 本文由小鹏翻译自GregTurk在1997年所写的《Mathematics for Computer Graphics》。 为便于阅读与资源分享,稍作编辑。 “学习计算机图形学需要多少的数学?”这是初学者最经常问的问题。答案取决于你想在计算机...


    本文由小鹏翻译自Greg Turk在1997年所写的《Mathematics for Computer Graphics》
    为便于阅读与资源分享,稍作编辑。


         “学习计算机图形学需要多少的数学?”这是初学者最经常问的问题。答案取决于你想在计算机图形学领域钻研多深。如果仅仅使用周围唾手可得的图形软件,你不需要知道多少数学知识。如果想学习计算机图形学的入门知识,我建议你读一读下面所写的前两章(代数,三角学和线性代数)。如果想成为一名图形学的研究者,那么对数学的学习将是活到老,学到老。
          如果你并不特别喜欢数学,是否仍有在计算机图形学领域工作的机会?是的,计算机图形学的确有一些方面不需要考虑太多的数学问题。你不应该因为数学成绩不好而放弃它。不过,如果学习了更多的数学知识,似乎你将在研究课题上有更多的选择余地。
    对于在计算机图形学中哪些数学才是重要的还没有明确的答案。这领域里不同的方面要求掌握不同的数学知识,也许兴趣将会决定了你的方向。以下介绍我认为对于计算机图形学有用的数学。别以为想成为一名图形学的研究者就必须精通各门数学!为了对用于图形学的数学有一个全面的看法,我特地列出了很多方面。但是许多研究者从不需要考虑下面提到的数学。
          最后,虽然读了这篇文章后,你应该会对数学在计算机图形学中的应用有所了解,不过这些观点完全是我自己的。也许你应该阅读更多的此类文章,或者至少从其他从事计算机图形学工作的人那里了解不同的学习重点。现在开始切入正题。

     


    代数和三角学


    对于计算机图形学的初学者来说,高中的代数和三角学可能是最重要的数学。日复一日,我从简单的方程解出一个或更多的根。我时常还要解决类似求一些几何图形边长的简单三角学问题。代数和三角学是计算机图形学的最基础的知识。
      那么高中的几何学怎么样呢?可能让人惊讶,不过在多数计算机图形学里,高中的几何学并不经常被用到。原因是许多学校教的几何学实际上是如何建立数学证明的课程。虽然证明题对提高智力显然是有效的,但对于计算机图形学来说,那些与几何课有关的定理和证明并不常被用到。如果你毕业于数学相关领域(包括计算机图形学),就会发现虽然你在证明定理,不过这对开始学习图形学不是必要的。
      如果精通代数和三角学,就可以开始读一本计算机图形学的入门书了。下一个重要的用于计算机图形学的数学——线性代数,多数此类书籍至少包含了一个对线性代数的简要介绍。推荐的参考书:

            Computer Graphics: Principles and Practice 
            James Foley, Andries van Dam, Steven Feiner, John Hughes 
            Addison-Wesley 


              此书的中文版本:

          

     



    线性代数


    线性代数的思想贯穿于计算机图形学。事实上,只要牵涉到几何数值表示法,就常常抽象出例如x,y,z坐标之类的数值,我们称之为矢量。图形学自始至终离不开矢量和矩阵。用矢量和矩阵来描述旋转,平移,或者缩放是再好不过了。高中和大学都有线性代数的课程。只要想在计算机图形学领域工作,就应该打下坚实的线性代数基础。我刚才提到,许多图形学的书都有关于线性代数的简要介绍——足够教给你图形学的第一门课。推荐的参考书: 

          
         Linear Algebra and Its Applications 
         Gilbert Strang 
         Academic Press



    微积分学


     

    微积分学是高级计算机图形学的重要成分。如果打算研究图形学,我强烈建议你应该对微积分学有初步认识。理由不仅仅是微积分学是一种很有用的工具,还有许多研究者用微积分学的术语来描述他们的问题和解决办法。另外,在许多重要的数学领域,微积分学被作为进一步学习的前提。学习了基本代数之后,微积分学又是一种能为你打开多数计算机图形学与后继的数学学习之门的课程。微积分学是我介绍的最后一个中学课程,以下提及的科目几乎全部是大学的课程。


    微分几何学


     

    微分几何学研究支配光滑曲线,曲面的方程组。如果你要计算出经过某个远离曲面的点并垂直于曲面的矢量(法向矢量)就会用到微分几何学。让一辆汽车以特定速度在曲线上行驶也牵涉到微分几何学。有一种通用的绘制光滑曲面的图形学技术,叫做“凹凸帖图”,这个技术用到了微分几何学。如果要着手于用曲线和曲面来创造形体(在图形学里称之为建模)你至少应该学习微分几何学的基础。推荐的参考书:  

         
         Elementary Differential Geometry 
         
    Barrett O'Neill 
         Academic Press



    数值方法


     

    几乎任何时候,我们在计算机里用近似值代替精确值来表示和操作数值,所以计算过程总是会有误差。而且对于给定的数值问题,常常有多种解决的方法,一些方法会更块,更精确或者对内存的需求更少。数值方法研究的对象包括“计算方法”和“科学计算”等等。这是一个很广阔的领域,而且我将提及的其他几门数学其实是数值方法的一些分支。这些分支包括抽样法理论,矩阵方程组,数值微分方程组和最优化。推荐的参考书: 

          
         Numerical Recipes in C: The Art of Scientific Computing 
         William Press, Saul Teukolsky, William Vetterling and Brian Flannery 
         Cambridge University Press 
         [这本参考书很有价值可是很少作为教材使用]



    抽样法理论和信号处理


     

    在计算机图形学里我们反复使用储存在正规二维数组里的数字集合来表示一些对象,例如图片和曲面。这时,我们就要用抽样法来表示这些对象。如果要控制这些对象的品质,抽样法理论就变得尤为重要。抽样法应用于图形学的常见例子是当物体被绘制在屏幕上时,它的轮廓呈现锯齿状的边缘。这锯齿状的边缘(被认为是“混淆”现象)是非常让人分散注意力的,用抽样法中著名的技术例如回旋,傅立叶变换,空间和频率的函数表示就能把这个现象减少到最小。这些思想在图像和音频处理领域是同样重要的。推荐的参考书: 

           
         The Fourier Transform. and Its Applications
      Ronald N. Bracewell
      McGraw Hill



    矩阵方程组


     

    计算机图形学的许多问题要用到矩阵方程组的数值解法。一些涉及矩阵的问题包括:找出最好的位置与方向以使对象们互相匹配(最小二乘法),创建一个覆盖所给点集的曲面,并使皱折程度最小(薄板样条算法),还有材质模拟,例如水和衣服等。在图形学里矩阵表述相当流行,因此在用于图形学的数学中我对矩阵方程组的评价是很高的。推荐的参考书: 

           
         Matrix Computations 
         Gene Golub and Charles Van Loan 
         Johns Hopkins University Press



    物理学


     

    物理学显然不是数学的分支,它是自成一家的学科。但是在计算机图形学的某些领域,物理学和数学是紧密联系的。在图形学里,牵涉物理学的问题包括光与物体的表面是怎样互相影响的,人与动物的移动方式,水与空气的流动。为了模拟这些自然现象,物理学的知识是必不可少的。这和解微分方程紧密联系,我将会在下一节提到微分方程。



    微分方程的数值解法


     

    我相信对于计算机图形学来说,解微分方程的技巧是非常重要的。像我们刚才讨论的,计算机图形学致力于模拟源于真实世界的物理系统。波浪是怎样在水里形成的,动物是怎样在地面上行走的,这就是两个模拟物理系统的例子。模拟物理系统的问题经常就是怎样解微分方程的数值解。请注意,微分方程的数值解法与微分方程的符号解法是有很大差异的。符号解法求出没有误差的解,而且时常只用于一些非常简单的方程。有时大学课程里的“微分方程”只教符号解法,不过这并不会对多数计算机图形学的问题有帮助。在对物理系统的模拟中,我们把世界细分为许多表示成矢量的小元素。然后这些元素之间的关系就可以用矩阵来描述。虽然要处理的矩阵方程组往往没有很精确的解,但是取而代之的是执行了一系列的计算,这些计算产生一个表示成数列的近似解。这就是微分方程的数值解法。请注意,矩阵方程的解法与微分方程数值解法的关系是很密切的。


    最优化


     

    在计算机图形学里,我们常常为了期望的目标寻求一种合适的描述对象或者对象集的方法。例如安排灯的位置使得房间的照明看起来有种特殊的“感觉”,动画里的人物要怎样活动四肢才能实现一个特殊的动作,怎样排版才不会使页面混乱。以上这些例子可以归结为最优化问题。十年前的计算机图形学几乎没有最优化技术的文献,不过最近这个领域越来越重视最优化理论。我认为在计算机图形学里,最优化的重要性将会日益增加。



    概率论与统计学


     

    计算机图形学的许多领域都要用到概率论与统计学。当研究者涉足人类学科时,他们当然需要统计学来分析数据。图形学相关领域涉及人类学科,例如虚拟现实和人机交互(HCI)。另外,许多用计算机描绘真实世界的问题牵涉到各种未知事件的概率。两个例子:一棵成长期的树,它的树枝分杈的概率;虚拟的动物如何决定它的行走路线。最后,一些解高难度方程组的技巧用了随机数来估计方程组的解。重要的例子:蒙特卡罗方法经常用于光如何传播的问题。以上仅是一部分在计算机图形学里使用概率论和统计学的方法。


    计算几何学


     

    计算几何学研究如何用计算机高效地表示与操作几何体。典型问题如,碰撞检测,把多边形分解为三角形,找出最靠近某个位置的点,这个学科包括了运算法则,数据结构和数学。图形学的研究者,只要涉足创建形体(建模),就要大量用到计算几何学。推荐的参考书: 

         
         Computational Geometry in C
      Joseph O'Rourke
      Cambridge University Press

      [大学教材]
      Computational Geometry: An Introduction
      Franco Preparata and Michael Shamos
      Springer-Verlag
      [很经典,不过有点旧了]

     



    总结:数学应用和数学理论

      对于图形学来说,以上提到的许多数学学科都有个共同点:比起这些数学的理论价值,我们更倾向于发掘它们的应用价值。不要惊讶。图形学的许多问题和物理学者与工程师们研究的问题是紧密联系的,并且物理学者与工程师们使用的数学工具正是图形学研究者们使用的。多数研究纯数学理论的学科从不被用于计算机图形学。不过这不是绝对的。请注意这些特例:分子生物学正利用节理论来研究DNA分子动力学,亚原子物理学用到了抽象群论。也许有一天,纯数学理论也能推动计算机图形学的发展,谁知道呢?
         有些看来重要的数学实际上在计算机图形学里不常被用到。可能拓扑学是此类数学中最有意思的。用一句话来形容拓扑学,它研究油炸圈饼与咖啡杯为什么在本质上是相同的。答案是他们都是只有一个洞的曲面。我们来讨论一下拓扑学的思想。虽然曲面是计算机图形学的重要成分,不过微分几何学的课程已经涵盖了多数对图形学有用的拓扑学知识。微分几何学研究曲面的造型,可是拓扑学研究曲面的相邻关系。我觉得拓扑学对于图形学来说几乎没用,这是由于拓扑学关心抽象的事物,而且拓扑学远离了多数图形学的核心——三维欧氏空间的概念。对于图形学来说,拓扑学的形式(符号表示法)是表达思想的简便方法,不过图形学很少用到抽象拓扑学的实际工具。对图形学来说,拓扑学像一个好看的花瓶,不过别指望它能立即带给你回报。
      有人曾经这么问我,计算机图形学是否用到了抽象代数(群论,环,等等….)或者数论。我没怎么遇到过。和拓扑学一样,这些学科有很多美好的思想。可是很不幸,这些思想很少用于计算机图形学。

     

    转载于:https://www.cnblogs.com/ufoym/archive/2009/01/21/1379529.html

    展开全文
  • 文章目录局部直方图均衡在图像增强中使用直方图统计使用直方图统计的局部增强空间域滤波机理空间滤波器模板的产生平滑线性滤波器统计排序(非线性)滤波器锐化空间滤波器 局部直方图均衡 一幅大小为 512x512 的8比特...

    局部直方图均衡

    一幅大小为 512x512 的8比特图像,初看有轻微噪声,通过全局直方图均衡后,噪声增强,但并未 显示新的重要细节,使用邻域为 3x3 的矩阵进行局部直方图均衡,可以看到包含在暗色方块中的物体。

    过程是定义一个邻域,并把该区域的中心从一个像素移至另一个像素,在每个位置,计算邻域中的点的直方图,并且得到的不是直方图均衡化,就是规定化变换函数。这个函数最终用于映射邻域中心像素的灰度。

    在图像增强中使用直方图统计

    令 r 表示在区间 $ [ 0, L-1 ] $ 上代表灰度值的一个离散随机变量,并令p(ri)p(r_i)表示对应于rir_i值得归一化直方图分量。

    r关于其均值得n阶矩定义为:
    μn(r)=i=0L1(rim)np(ri) μ_n(r) = \sum_{i=0}^{L-1}(r_i-m)^np(r_i)
    其中,m是r得均值(平均灰度,即图像中像素得平均灰度)
    m=i=0L1rip(ri) m = \sum_{i=0}^{L-1}r_ip(r_i)

    其二阶矩称为灰度方差,通常用$ \theta^2 $表示

    根据矩的定义,可知一阶矩即期望值,二阶矩即方差值

    在仅处理均值和方差时,实际上通常直接从取样值来估计它们,而不必计算直方图。近似的,这些估计称为取样均值取样方差
    m=1MNx=0M1y=0N1f(x,y) m = \frac{1}{MN} \sum_{x=0}^{M-1} \sum_{y=0}^{N-1}f(x,y)

    全局均值和方差是在整幅图像上计算的,这对于全面灰度和对比度的总体调整是有用的。这些参数的一种更强有力的应用是局部增强,在局部增强中,局部均值和方差是根据图像中每一像素的邻域内的图像特征进行改变的基础。

    令(x,y)表示给定图像中任意像素的坐标,$ S_{xy}$表示规定大小的以(x,y)为中心的邻域
    msxy=i=0L1ripsxy(ri) m_{s_{xy}} = \sum_{i=0}^{L-1}r_ip_{s_{xy}}(r_i)

    使用直方图统计的局部增强

    对钨丝的SEM图像进行分析,图像中央的钨丝很容易分析,但另一根钨丝的结构几乎不能察觉到。通过对比度操作进行局部增强。

    要求尽可能保留明亮区域不变,增强暗色区域。尽可能增强低对比度的区域。

    通过判断一个区域在点(x,y)是暗还是亮的方法:将局部平均灰度与全局均值的平均图像灰度进行比较。msk0mGm_s \leq k_0m_G , 其中 k0k_0是一个值小于1.0的正常数。

    空间域滤波机理

    (1) 一个邻域
    (2) 对该邻域包围的图像像素执行的预定义操作组成。

    滤波产生一个新像素,新像素的坐标等于邻域中心的坐标,像素的值是滤波操作的结果。如果在图像像素上执行的是线性操作,则该滤波器称为线性空间滤波器。否则,滤波器称为非线性空间滤波器

    空间相关与卷积

    相关是滤波器位移的函数,换句话说,相关的第一个值对应于滤波器的零位移,第二个值对应于一个单元位移,等等。

    滤波器w与包含有全部0和单个1的函数相关,得到的结果是w的一个拷贝,但旋转了180°。我们将包含单个1而其余都是0的函数称为离散单位冲激

    例如:0 0 0 0 1 0 0 0 0(一维情况)

    卷积的基本特性是某个函数与某个单位的冲激卷积,得到一个在该冲激处的这个函数的拷贝。

    一个大小为$m * n 的滤波器w(x,y)与一幅图像f(x,y)$做相关操作,可表示为
    w(x,yf(x,y))=s=aat=bbw(s,t)f(x+s,y+t) w(x,y \cdot f(x,y)) = \sum_{s=-a}^a \sum_{t=-b}^bw(s,t)f(x+s,y+t)
    这一等式对所有位移变量x和y求值,以便w的所有元素访问f的每一个元素。

    类似地,卷积表示为
    w(x,y)f(x,y)=s=aas=bbw(s,t)f(xs,yt) w(x,y) \bigstar f(x,y) = \sum_{s=-a}^a \sum_{s=-b}^b w(s,t)f(x-s,y-t)

    空间滤波器模板的产生

    我们使用线性滤波所能做的所有事情都是实现乘积求和操作。在图像中任意位置(x,y)的灰度平均值是以(x,y)为中心的3x3邻域中的9个灰度值之和除以9。

    平均灰度为
    R=19i=19Zi R = \frac{1}{9} \sum_{i=1}^9Z_i

    产生非线性滤波要求我们确定邻域的大小,以及将对包含在邻域内的图像像素执行的操作。非线性滤波器功能非常强大,在某些应用中它可执行超出线性滤波器能力的功能。

    平滑线性滤波器

    平滑滤波器的基本概念非常直观。它使用滤波器模板确定的邻域内像素的平均灰度值代替图像中每个像素的值,这种处理的结果降低了图像灰度的"尖锐"变化。然而由于图像边缘也是由图像灰度尖锐变化带来的特性,所以均值滤波处理还是存在着不希望有的边缘模糊的负面效应。

    加权平均:指用不同的系数乘以像素,即一些像素的权重比另一些像素更大。
    g(x,y)=s=aat=bbw(s,t)f(x+s,y+t)s=aas=bbw(s,t) g(x,y)= \frac{ \sum_{s=-a}^{a} \sum_{t=-b}^{b}w(s,t)f(x+s,y+t)}{\sum_{s=-a}^{a} \sum_{s=-b}^{b}w(s,t)}

    空间均值处理的一个重要应用是为了对感兴趣的物体得到一个粗略的描述而模糊一幅图像

    统计排序(非线性)滤波器

    统计排序滤波器是一种非线性空间滤波器,这种滤波器的响应以滤波器包围的图像区域中所包含的像素的排序为基础,然后使用统计排序结果决定的值代替中心像素的值。这一类中最知名的滤波器是中值滤波器,将像素邻域内灰度的中值代替该像素的值。

    中值滤波器对处理脉冲噪声非常有效,这种噪声也称为椒盐噪声,因为这种噪声是以黑白点的形式叠加在图像上的。

    锐化空间滤波器

    图像模糊可通过在空间域用像素邻域平均法实现。因为均值处理与积分类似,在逻辑上,我们可以得出锐化处理可有空间微分来实现这一结论。

    很久没有在CSDN上发东西了 本来把这做个笔记整理 保存的地方 现在用Typora+Github 所以以后发不发看心情了
    本人GitHub地址

    展开全文
  • 图像处理基础知识系列之五:贝叶斯方法简单梳理      文章来源:    刘未鹏 数学之美番外篇:平凡而又神奇的贝叶斯方法(作者是个技术兼心理学大拿,有兴趣的童鞋可以深入了解一下)    引用文章...
    图像处理基础知识系列之五:贝叶斯方法简单梳理

             
              
           文章来源:
            
            刘未鹏        数学之美番外篇:平凡而又神奇的贝叶斯方法(作者是个技术兼心理学大拿,有兴趣的童鞋可以深入了解一下)
            
            引用文章为百度搜索“贝叶斯”排名第二的搜索结果,这里仅摘抄其中自己感觉收获最大的两段(蓝色文字原文没有)。

            

    1. 贝叶斯公式

    贝叶斯公式是怎么来的?

    我们还是使用 wikipedia 上的一个例子:

    一所学校里面有 60% 的男生,40% 的女生。男生总是穿长裤,女生则一半穿长裤一半穿裙子。有了这些信息之后我们可以容易地计算“随机选取一个学生,他(她)穿长裤的概率和穿裙子的概率是多大”,这个就是前面说的“正向概率”的计算。然而,假设你走在校园中,迎面走来一个穿长裤的学生(很不幸的是你高度近似,你只看得见他(她)穿的是否长裤,而无法确定他(她)的性别),你能够推断出他(她)是男生的概率是多大吗?

    一些认知科学的研究表明(《决策与判断》以及《Rationality for Mortals》第12章:小孩也可以解决贝叶斯问题),我们对形式化的贝叶斯问题不擅长,但对于以频率形式呈现的等价问题却很擅长。在这里,我们不妨把问题重新叙述成:你在校园里面随机游走,遇到了 N 个穿长裤的人(仍然假设你无法直接观察到他们的性别),问这 N 个人里面有多少个女生多少个男生。

    你说,这还不简单:算出学校里面有多少穿长裤的,然后在这些人里面再算出有多少女生,不就行了?

    我们来算一算:假设学校里面人的总数是 U 个。60% 的男生都穿长裤,于是我们得到了 U * P(Boy) * P(Pants|Boy) 个穿长裤的(男生)(其中 P(Boy) 是男生的概率 = 60%,这里可以简单的理解为男生的比例;P(Pants|Boy) 是条件概率,即在 Boy 这个条件下穿长裤的概率是多大,这里是 100% ,因为所有男生都穿长裤)。40% 的女生里面又有一半(50%)是穿长裤的,于是我们又得到了 U * P(Girl) * P(Pants|Girl) 个穿长裤的(女生)。加起来一共是 U * P(Boy) * P(Pants|Boy) + U * P(Girl) * P(Pants|Girl) 个穿长裤的,其中有 U * P(Girl) * P(Pants|Girl) 个女生。两者一比就是你要求的答案。

    下面我们把这个答案形式化一下:我们要求的是 P(Girl|Pants) (穿长裤的人里面有多少女生),我们计算的结果是 U * P(Girl) * P(Pants|Girl) / [U * P(Boy) * P(Pants|Boy) + U * P(Girl) * P(Pants|Girl)] 。容易发现这里校园内人的总数是无关的,可以消去。于是得到

    P(Girl|Pants) = P(Girl) * P(Pants|Girl) / [P(Boy) * P(Pants|Boy) + P(Girl) * P(Pants|Girl)]

    注意,如果把上式收缩起来,分母其实就是 P(Pants) ,分子其实就是 P(Pants, Girl) 。而这个比例很自然地就读作:在穿长裤的人( P(Pants) )里面有多少(穿长裤)的女孩( P(Pants, Girl) )。

    上式中的 Pants 和 Boy/Girl 可以指代一切东西,所以其一般形式就是:

    P(B|A) = P(A|B) * P(B) / [P(A|B) * P(B) + P(A|~B) * P(~B) ]

    收缩起来就是:

    P(B|A) = P(AB) / P(A)         (P(AB) 为A,B事件同时出现的概率=P(A)*P(B),A,B之间互不影响;P(B|A) 为在A的基础上(这里P(A)=1)出现B的概率,换句话说是B占A的多少。)

    其实这个就等于:

    P(B|A) * P(A) = P(AB)

    难怪拉普拉斯说概率论只是把常识用数学公式表达了出来

    然而,后面我们会逐渐发现,看似这么平凡的贝叶斯公式,背后却隐含着非常深刻的原理。

    2. 拼写纠正

    经典著作《人工智能:现代方法》的作者之一 Peter Norvig 曾经写过一篇介绍如何写一个拼写检查/纠正器的文章(原文在这里,徐宥的翻译版在这里,这篇文章很深入浅出,强烈建议读一读),里面用到的就是贝叶斯方法,这里我们不打算复述他写的文章,而是简要地将其核心思想介绍一下。

    首先,我们需要询问的是:“问题是什么?

    问题是我们看到用户输入了一个不在字典中的单词,我们需要去猜测:“这个家伙到底真正想输入的单词是什么呢?”用刚才我们形式化的语言来叙述就是,我们需要求:

    P(我们猜测他想输入的单词 | 他实际输入的单词)

    这个概率。并找出那个使得这个概率最大的猜测单词。显然,我们的猜测未必是唯一的,就像前面举的那个自然语言的歧义性的例子一样;这里,比如用户输入: thew ,那么他到底是想输入 the ,还是想输入 thaw ?到底哪个猜测可能性更大呢?幸运的是我们可以用贝叶斯公式来直接出它们各自的概率,我们不妨将我们的多个猜测记为 h1 h2 .. ( h 代表 hypothesis),它们都属于一个有限且离散的猜测空间 H (单词总共就那么多而已),将用户实际输入的单词记为 D ( D 代表 Data ,即观测数据),于是

    P(我们的猜测1 | 他实际输入的单词)

    可以抽象地记为:

    P(h1 | D)

    类似地,对于我们的猜测2,则是 P(h2 | D)。不妨统一记为:

    P(h | D)

    运用一次贝叶斯公式,我们得到:

    P(h | D) = P(h) * P(D | h) / P(D)

    对于不同的具体猜测 h1 h2 h3 .. ,P(D) 都是一样的,所以在比较 P(h1 | D) 和 P(h2 | D) 的时候我们可以忽略这个常数。即我们只需要知道:

    P(h | D) ∝ P(h) * P(D | h) (注:那个符号的意思是“正比例于”,不是无穷大,注意符号右端是有一个小缺口的。)

    这个式子的抽象含义是:对于给定观测数据,一个猜测是好是坏,取决于“这个猜测本身独立的可能性大小(先验概率,Prior )”和“这个猜测生成我们观测到的数据的可能性大小”(似然,Likelihood )的乘积。具体到我们的那个 thew 例子上,含义就是,用户实际是想输入 the 的可能性大小取决于 the 本身在词汇表中被使用的可能性(频繁程度)大小(先验概率P(h) )和 想打 the (公式中对应着h,这里的the只是所有可能选项中的一个)却打成 thew(公式中对应着D,观测数据) 的可能性大小(似然)的乘积。(感觉这两句话是精髓,对于深入理解相对来讲一头雾水的干巴巴的公式,有了形象的认识。)

    下面的事情就很简单了,对于我们猜测为可能的每个单词计算一下 P(h) * P(D | h) 这个值,然后取最大的,得到的就是最靠谱的猜测。

    一点注记:Norvig 的拼写纠正器里面只提取了编辑距离为 2 以内的所有已知单词。这是为了避免去遍历字典中每个单词计算它们的 P(h) * P(D | h) ,但这种做法为了节省时间带来了一些误差。但话说回来难道我们人类真的回去遍历每个可能的单词来计算他们的后验概率吗?不可能。实际上,根据认知神经科学的观点,我们首先根据错误的单词做一个 bottom-up 的关联提取,提取出有可能是实际单词的那些候选单词,这个提取过程就是所谓的基于内容的提取,可以根据错误单词的一些模式片段提取出有限的一组候选,非常快地缩小的搜索空间(比如我输入 explaination ,单词里面就有充分的信息使得我们的大脑在常数时间内把可能性 narrow down 到 explanation 这个单词上,至于具体是根据哪些线索——如音节——来提取,又是如何在生物神经网络中实现这个提取机制的,目前还是一个没有弄清的领域)。然后,我们对这有限的几个猜测做一个 top-down 的预测,看看到底哪个对于观测数据(即错误单词)的预测效力最好,而如何衡量预测效率则就是用贝叶斯公式里面的那个 P(h) * P(D | h) 了——虽然我们很可能使用了一些启发法来简化计算。后面我们还会提到这样的 bottom-up 的关联提取。

    展开全文
  • 数据挖掘中所需的概率论与数理统计知识

    万次阅读 多人点赞 2018-09-04 14:27:15
    数据挖掘中所需的概率论与数理统计知识  (关键词:微积分、概率分布、期望、方差、协方差、数理统计简史、大数定律、中心极限定理、正态分布)   导言:本文从微积分相关概念,梳理到概率论与数理统计中的...
  • 有关图像处理和机器学习的建议

    千次阅读 2018-03-19 20:58:32
    在跑算法的时候最适合答题了呢(害羞脸图像处理说到底是一门数学和实践结合的学科。所以要搞算法,数学基础必不可少,同时工程实践性的话,编程能力不能弱。二者不可偏废。我向来推崇以练促学,...
  • 图像处理经典文献

    千次阅读 2018-01-29 10:43:26
    我们所说的图像处理实际上就是数字图像处理,是把真实世界中的连续三维随机信号投影到传感器的二维平面上,采样并量化后得到二维矩阵。数字图像处理就是二维矩阵的处理,而从二维图像中恢复出三维场景就是计算机视觉...
  • 即使没有计算机图形学基础知识的读者也完全不用担心您是否适合阅读此文,本文的性质属于科普文章,将为您揭开诸如Photoshop、Fireworks、GIMP等软件的图像处理操作的神秘面纱。之前您也许对这些处理技术感到惊奇和...
  • 图像处理与机器视觉 一行业分析 数字图像处理是对图像进行分析、加工、和处理,使其满足视觉、心理以及其他要求的技术。图像处理是信号处理在图像域上的一个应用。目前大多数的图像是以数字形式存储,因而图像...
  • 虽然没有做出什么很出色的工作,不过在这个领域摸爬滚打了十年之后,发现自己对图像处理和计算机视觉的感情越来越深厚。下班之后看看相关的书籍和文献是一件很惬意的事情。平常的一大业余爱好就是收集一些相关的文章...
  • 图像处理与计算机视觉:基础,经典以及最近发展 xdyang的图像视觉小屋 图像处理与计算机视觉经典论文(6) 图像处理与分析(10) 计算机视觉(8) 模式识别和机器学习(12) [置顶] 图像...
  • 《模式识别及其在图像处理中的应用》 1、模式识别基本框架 一般认为,模式识别是通过具体的事物进行观测所得到的具有时间、空间分布的信息,模式所属的类别或同一类中模式的总体成为模式类,其中个别具体的模式...
  • 数字图像处理像素间的一些基本关系邻接性8邻接的二义性连通性,区域和边界 像素间的一些基本关系 邻接性 令V是用于定义邻接性的灰度值集合(比较拗口,很难理解,没关系看下面~~)。 比如在二值图像中,如果我们把...
  • 4.2 机器学习、人工智能、图像处理、图像识别导论 最近在看机器学习的书。之前一直搞不清这几个概念,而且以为都是某种“黑魔法”,但其实都是数学方法,所谓的什么“黑盒子”,其实也不黑。这些领域都是相互交错的...
  • 图像处理常用公式-不错

    千次阅读 2017-02-22 19:45:35
    图像处理常用公式-不错
  • 傅立叶变换

    2019-08-14 20:38:41
    傅里叶变换在物理学、数论、组合数学、信号处理概率论、统计学、密码学、声学、光学、海洋学、结构动力学等领域都有着广泛的应用(例如在信号处理中,傅里叶变换的典型用途是将信号分解成幅值分量和频率分量...
  • 导言:本文从微积分相关概念,梳理到概率论与数理统计中的相关知识,但本文之压轴戏在本文第4节(彻底颠覆以前读书时大学课本灌输给你的观念,一探正态分布之神秘芳踪,知晓其前后发明历史由来),相信,每一个学过...
  • C++,曾经我想用python来做图像处理,后来发现无论是二维图像处理(opencv)还是三维点云处理(PCL),都得学C++ 数据结构与算法,设计程序的基础课程 编译原理 操作系统,并行计算算法、linux等知识 CUDA 《GPU高...
  • 图像处理与计算机视觉的经典书籍

    万次阅读 多人点赞 2014-04-13 20:37:56
    ************************************************************************************************************************************************************************************ ...
1 2 3 4 5 ... 20
收藏数 2,227
精华内容 890
关键字:

图像处理用到概率论