☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░
一、引言
本系列文章记录老猿自学冈萨雷斯《数字图像处理》的感悟和总结,不过估计更新会比较慢,白天要工作,都是晚上抽空学习,学习完一章再回头总结,想学的朋友可以自己下载英文原版(目前到第四版)和中文译本(目前应该到第三版)的电子版观看,如果想对照观看建议英文原版也找第三版。
这本《数字图像处理》不愧为数字图像处理的经典教程,知识范围广、内容详尽、案例贴近实践,至少很合老猿的口味。但中译本存在两个问题:
- 有些翻译得不够精准或流利,对于这样的内容如果在老猿总结知识中出现,会以斜体字标记,有些关键术语老猿会附上英文原词;
- 中译本的图像案例很多都比原版差很多,甚至差到影响对讲述内容的理解,因此就算不看原版文字,图像案例最好还是对照原版的。
二、知识概要:光和电磁波谱(Light and the Electromagnetic Spectrum)
- 电磁波可以看成是以波长λ 传播的正弦波(sinusoidal waves),或者可以看成以波的形式光速传播和移动的没质量(massless)的粒子流(particles),每个粒子叫光子(photon);
- 电磁波可用波长λ (单位:米)、频率v(单位:赫兹)和能量E(单位:电子伏特)来描述,三者的关系是:
λ = c/v,c为光速,c = 2.998×10
8
E = hv,其中h是普朗克常数
可以看出能量与频率成正比,与波长成反比,因此无线电波对活体组织危害小,而伽马射线对活体组织危害大,与电磁波谱相对应按危害大小升序排列的电磁波顺序依次是:
无线电波<微波<红外线<可见光<紫外线<X射线<伽马射线
- 完整的电磁波谱图:
- 光是一种特殊的电磁辐射,它可以被人眼感知,人眼可辨别的可见光(visible light)的彩色范围只占电磁波的一小部分。从上图可见,彩色光谱分为:紫色、蓝色、绿色、黄色、橙色和红色。
- 人感受物体的颜色是由物体反射光(the light reflected from the object)决定的。
没有颜色的光称为单色光(monochromatic )或无色广(achromatic),其唯一属性就是强度(intensity)或数量(amount),灰度级(gray level)一词通常用来表示单色光的强度。 - 可以从以下三个方面来量化描述彩色光源:
- 辐射量(radiance):辐射量是从光源发出的总能量,单位瓦特(w)。中译本中称为发光强度
- 光通量(luminance):是观察者从光源感受到的能量数量,单位为流明数(lm)。例如远红外发出的光有辐射量,但人眼很难感知,则光通量几乎为0
- 亮度(brightness):是光感知的一个主观描述,是描述色觉的一个关键因素和表征单色光的强度,但无法度量
三、知识概要:图像感知和获取(Image Sensing and Acquisition)
-
多数图像都是由“辐射(illumination)”源的能量入射和图像对应“景物(scene)”元素对能量的反射(reflection)或吸收(absorption)组合产生的,这里对二者加引号是为了强调二者比可见光照射三维景物更通用。辐射源可以是比可见光更广泛的电磁波、声波、超声波甚至计算机产生的照射模式,而景物可以是熟悉的物体、沉积岩(buried rock formations)、分子(molecules)或人的大脑;
-
如果可以开发出一种传感器来侦测某种电磁波谱辐射的能量,则理论上可以利用该电磁波成像,但前提是这种电磁波的波长必须小于等于被观察对象的大小。这个限制与传感材料的物理特性就成了图像传感器的基本限制;
-
辐射成像的基本过程为:依赖辐射源的特性(nature),辐射能(illumination energy)被物体反射(reflected,如相机拍照)或透射(transmitted through,如X光影像),特定类型的辐射能被反射或透射后的能量被传感器捕获,传感器根据捕获能量大小输出电压波形(voltage waveform)作为响应,将电压波形数字化从而转换为一个数字量。
-
辐射能成像传感器主要有三种:
√ 单个图像传感器:Single imaging sensor,如光电二极管(photodiode),传感器前面可以有个滤光器(filter)来改善选择性(selectivity.,如绿色滤光器有利于绿色光通过,输出的绿光比其他可见光要强),为使单个传感器成像,在传感器和成像区域间必须有x和y方向的相对位移(relative displacements)
√ 条带传感器:Line sensor,如平板扫描仪、航空,传感器一次成像一行x方向的数据,通过传感器相对物体的移动来完成图像的y方向数据采集。有些条带传感器(如圆环形传感器CT、MRI)的输出必须由重建算法(reconstruction algorithms)处理,重建算法的目的是为了把感知数据转换为有意义的剖面图像
√ 阵列传感器:Array sensor,如数码相机的CCD,通过将能量聚焦到阵列表面得到一副图像,成像过程中传感器不需移动。由于传感器的响应正比于捕获的辐射总能量,可通过累积输入信号超过一定时间达到降噪的目的。 -
简单辐射能成像模型(A Simple Image Formation Model)
在《冈萨雷斯《数字图像处理》学习总结及感悟:第一章 绪论 百闻不如一见 https://blog.csdn.net/LaoYuanPython/article/details/116807930》介绍了使用二维函数f(x,y)来表示图像,对于空间坐标(x,y),函数f的值就是图像在坐标(x,y)处的幅值,其值为一正标量(positive scalar quantity),其物理意义为图像源决定。
辐射成像的数字图像函数f(x,y)可由两个分量(two components)来表示:
√ 辐射源(source illumination)入射(incident)到被观察景物的能量总量,称为入射(illumination)分量,表示为i(x,y);
√ 景物中的物体反射的辐射总量,称为反射(reflectance)分量,表示为r(x,y)。
√ 入射分量i(x,y)和反射分量r(x,y)两个分量的乘积就是f(x,y),即:
f(x, y) = i (x, y) r (x, y)
其中:
0<i(x,y)<∞,其取值取决于辐射源,0<r(x,y)<1,其值取决于成像物体。
反射分量为0表示入射能量被完全吸收,为1表示全反射
。
√ 以上公式除了适合反射成像场景外,也适合于透射成像场景,只不过r(x,y)应该表示的是透射分量函数。 -
虽然成像主要以电磁波辐射能量为基础,但这并不是生成图像的唯一方法,其他如超声波成像的声波反射(sound reflected)、电子显微镜的电子束(electron beams)以及图形与可视化(graphics and visualization)的图像合成(synthetic images)都是数字图像的图像源。
四、感想和小结
本文基于冈萨雷斯《数字图像处理》第二章第二节和第三节的内容,对数字图像密切相关的电磁波谱和光、获取图像的成像传感器等方面的相关知识进行了介绍。
老猿认为本部分最重要的概念就是辐射能成像的原理,如电磁波入射到成像对象时,由于成像物体不同位置的不同特性,入射波所携带的能量被物体反射或吸收后透射出来的能量不同且表征了景物各位置的特征,因此才能使得传感器通过捕获这些反射或透射的能量来获取到物体的影像。
本章的图像公式 f(x, y) = i (x, y) r (x, y)
老猿认为是个很重要的公式,该公式从辐射源的入射能量强度和物体反射(或透射)系数相乘来表达辐射成像的原理,是个抽象但又好理解的概念,目前老猿还没了解该公式后续的使用,但想来应该对后续图像的变换有很重要的意义。老猿是个很纠结的人,在学习本书之前,在网上看到相关资料,图像的噪声图像等于原图像与噪声函数的乘积,当时特别不理解为什么一定是相乘,为什么不是相加或者其他更复杂的公式(如n次函数),有了这个公式后,虽然到现在还是没有彻底想明白机理,但老猿基本能接受噪声图像的计算为什么是两个函数相乘。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
关于老猿的付费专栏
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
- 付费专栏《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初学者疑难问题集专栏目录 》
- 付费专栏《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 微信公号发消息咨询。