当前位置 博文首页 > 老猿Python:《数字图像处理》学习总结及感悟:第二章数字图像基

    老猿Python:《数字图像处理》学习总结及感悟:第二章数字图像基

    作者:[db:作者] 时间:2021-07-27 08:44

    ? ? 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ?

    一、引言

    本系列文章记录老猿自学冈萨雷斯《数字图像处理》的感悟和总结,不过估计更新会比较慢,白天要工作,都是晚上抽空学习,学习完一章再回头总结,想学的朋友可以自己下载英文原版(目前到第四版)和中文译本(目前应该到第三版)的电子版观看,如果想对照观看建议英文原版也找第三版。

    这本《数字图像处理》不愧为数字图像处理的经典教程,知识范围广、内容详尽、案例贴近实践,至少很合老猿的口味。但中译本存在两个问题:

    1. 有些翻译得不够精准或流利,对于这样的内容如果在老猿总结知识中出现,会以斜体字标记,有些关键术语老猿会附上英文原词;
    2. 中译本的图像案例很多都比原版差很多,甚至差到影响对讲述内容的理解,因此就算不看原版文字,图像案例最好还是对照原版的。

    二、知识概要:视觉感知要素(Elements of Visual Perception)

    数字图像的处理基础是建立在数学和概率公式基础之上,在多种技术中选择一种而不是选择另一种起首要作用的是人的直觉(intuition)和分析,这种选择通常是基于主观和视觉判断(based on subjective, visual judgments)做出的。

    在本部分介绍人感知并形成图像的机制和因素(mechanics and parameters)、人类视觉的物理限制。

    2.1、人眼结构(Structure of the Human Eye)

    人眼结构剖面图如下:
    在这里插入图片描述
    部分重点功能体说明如下:

    1. 视网膜(retina)上的锥状体(cones )和杆状体(rods)是光感受器(light receptors)
    2. 锥状体位于视网膜中间,称为中央凹(fovea),肌肉控制眼球转动,直到感兴趣的物体图像落地中央凹上,中央凹对颜色高度敏感,每个锥状体细胞都连接到神经末梢,眼睛感受图像的细节就靠它。锥状体视觉称为白昼视觉(photopic vision)或亮视觉(bright-light vision)
    3. 杆状体:视网膜上更多的细胞是杆状体细胞,分布面积大,但几个杆状体细胞连接到一个神经末梢,因此对细节不敏感,是用于感受视野内一般的总体图像,杆状体没有彩色感觉(color vision),而对低照明度敏感(low levels of illumination)。例如白天彩色的物体,在月光下都没有颜色,因为此时是靠杆状体形成的视觉,这种现象称为暗视觉(scotopic vision)或微光视觉(dim-light vision)
    4. 人的视觉系统感知的亮度称为主观亮度(subjective brightness),实验表明其值是实际进入人眼的光强度的对数
    5. 除了盲点(blind spot)区域,光感受器分别是关于中央凹对称的,其密度与距中央凹的度数来度量(偏离视轴的度数),锥状体在中央凹的中心区域最密,从中心向外锥状体密度逐渐减小,而杆状体的密度逐渐增大,当距视轴不到20°除锥状体已经为0,而杆状体在20°左右达到最大密度,然后向外到视网膜的极限边缘处逐渐下降。如下图:
      在这里插入图片描述

    2.2、人眼成像的原理

    1. 虹膜(iris)的收缩和扩张控制着进入眼睛的光量
    2. 人眼的晶状体(lens)和视网膜之间的距离固定不变,人眼通过睫状体(ciliary)的纤维改变晶状体的形状来改变焦距,晶状体中心和视网膜沿视轴的距离大约是17mm,人眼的焦距范围为14-17mm。
    3. 中央凹就类似数字相机的CCD成像芯片阵列,视网膜图像主要聚集在中央凹区域,光接收器(锥状体和杆状体)接收到光产生感知(perception),把辐射能(radiant energy)转换为电脉冲(electrical impulses),最后由大脑解码

    2.3、亮度适应和辨别(Brightness Adaptation and Discrimination)

    1. 视觉系统不能同时在一个变化的不同光亮度的范围内工作,它是通过改变其整个系统的灵敏度(changing its overall sensitivity)来适应这种不同强度的变化的,这种现象被称为亮度适应(brightness adaptation)

    2. 人眼能同时辨别的不同强度的光亮度等级(intensity levels)与人眼所有能适应的光亮度范围相比是很小的,对于任何给定条件的环境下,视觉系统当前灵敏度级别称为亮度适应级别(brightness adaptation level)

    3. 在低照明度级别(low levels of illumination),视觉由杆状体执行,人眼亮度辨别(brightness discrimination )较差,辨别能力会随着背景亮度的提高而明显提高,在好的照明水平情况下,视觉由锥状体执行,人眼有较好的亮度辨别能力(better discrimination)

    4. 当眼睛扫视图像时,随图像的平均背景变化,从而人眼在每个新视觉适应级别上发现相应的不同增量变化,这样眼睛就能辨别整体识别范围内的更宽范围的光亮度。即感知亮度(perceived brightness)不是光亮度的简单函数。

    5. 马赫带效应:视觉系统会在不同强度(intensity)区域的边界处出现上冲(overshoot)或下冲(undershoot )现象,下图中的每一个条带内强度(intensity)是相同的,但在靠近边界处可以感知到带有毛边的亮度模式(brightness pattern that is strongly scalloped),这些看起来带有毛边的带称为马赫带(Mach bands),即当观察两块强度不同的区域时,边界处亮度对比加强,使轮廓表现得特别明显
      在这里插入图片描述

    6. 同时对比(simultaneous contrast )现象:区域的感知亮度(perceived brightness)并不简单地取决于图像区域强度(intensity),如下图:
      在这里插入图片描述

    三个大方块中心的小方块实际强度是一样的,但随着大方块背景变亮(lighter),中心小方块在眼睛里会变暗(darker)。另外一个例子是用白纸遮住眼睛看明亮的天空时会感觉白纸整体是黑色(black)的。

    2.4、错觉(optical illusions)

    错觉是指眼睛填充了不存在的信息或错误地感知了物体的几何特点,下面是几个错觉的案例。

    • 不存在的中心正方形
      在这里插入图片描述

    • 不存在的中心圆
      在这里插入图片描述

    • 实际相等只因加了两端箭头看起来不等的线段
      在这里插入图片描述

    • 实际平行只因加了交叉线看起来不平行的线
      在这里插入图片描述

    三、部分术语英汉对照

    • visual axis:视轴
    • phenomena:现象
    • Elements of Visual Perception:视觉感知要素
    • Image Formation in the Eye:眼睛成像

    四、小结和感悟

    本文对《数字图像处理》一书第二章第一节《视觉感知要素》进行了精简介绍,介绍了人眼结构、成像机理、亮度适应和辨别以及错觉等内容,有助于理解人眼视觉的机理。

    原书内容比上面介绍要详细得多,从这部分内容来看,作者知识面很广,写作准备充分,相关内容涉及生物学、物理学,从最基础的知识开始介绍,将人眼成像介绍得相当透彻,有利于理解后面部分介绍的数字图像相关机制,也扩展了我们这些计算机专业人员的知识,在此之前笔者虽然听说过马赫带效应和错觉,但还是阅读本部分内容第一次彻底了解这方面的知识。

    写博不易,敬请支持:

    如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

    关于老猿的付费专栏

    1. 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
    2. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
    3. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录 》
    4. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

    前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

    对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

    如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

    如对文章内容存在疑问,可在博客评论区留言,或关注:老猿Python 微信公号发消息咨询。

    老猿Python,跟老猿学Python!

    ? ? 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ?

    cs