课程链接:Intro to Digital Image Processing (ECSE-4540) Lectures
伽马光成像原理是给人体注入同位素,然后用检测器来检测同位素的放射量来成像
X光成像原理是利用人体不同部位密度不同,X光透过性不同,使得成像的灰度值不同
CT成像是一组X光不停旋转以后得到不同角度的成像,从而可以实现三维重建
紫外线成像一般是显微镜下采用的成像原理,用紫外光照射含有染色剂的细胞即可成像
这类成像是我们平时接触最多的,这门课也主要以这部分作为例子
微波成像通过发送微波脉冲后检测脉冲的反射波,从而计算出不同部位的图像
射频波段成像例如核磁共振是通过发射电磁波,人体内原子产生共振从而发出新的电磁波,再由接收器接收成像
超声波成像与微波成像原理大致相同,都是利用波的反射计算图像
电子显微镜成像与X光成像类似,但是是发射电子从而在检测端检测、成像
图像处理主要分三个等级,低等级是在像素层面对图像进行更改,输入的是图像输出的任然是图像;中等级是对图像进行识别,输入的是图像,输出的是图像的各种属性;最高等级是对图像进行理解,牵扯到计算机视觉的内容
以上就是本课程中将主要讲解的内容
下图是人眼的结构图,我们可以看到光线最终打在人的视网膜上,而视网膜上有很多的视锥细胞和视杆细胞感光,之后传送神经信号到大脑,经过处理以后我们就有“视觉”了。
视锥细胞和视杆细胞的分布如下图,我们可见视锥细胞集中在视网膜的中央凹处,视杆细胞分布在中央凹的周围
这二者的作用也不相同,具体对比如下:
视锥细胞对光的颜色比较敏感,他可以分为三类,对应感知三种颜色的光:红绿蓝
但这三种颜色的光并不纯,“红”更像是黄红,“绿”更像是蓝绿,“蓝”更像是紫蓝
由于每个人视网膜上视锥细胞和视杆细胞的分布不同,因此每个人对颜色的感知也是不同的,因此我们需要一套标准来同一我们对颜色的描述,其中最常用的就是RGB,RGB用红绿蓝的不同组合来描述颜色
还有一种描述方法在打印机中常用,叫做CMYK。CYMK实际上就是上图中的C(cyan)、Y(yello)、M(magenta),再加上一个K(black)。这种方法的出现是由于在打印机中颜料呈现不同颜色的原理不是因为颜料能自发光,而是因为颜料能吸收除本颜料颜色以外的所有光。因此我们用CYM分表表示颜料吸收红、蓝、绿光,再通过这三种颜色的组合来表示不同的颜色。理论上来说三种颜料的混合就能吸收所以的光,从而呈现出黑色,但是实际效果是这三种颜色混合后产生的黑色不纯,因此我们需要另外加一个黑色K,来单独呈现黑色。
还有一种表示方式是HSL(HSV),分别由hue、saturation、brigtness(value)表示,这种表示方式是由人眼直观感受衍生出来的颜色表示方法。其中hue(色相)表示颜色中最主要的颜色成分;saturation(饱和度)表示最主要颜色的纯度;lightness(亮度)表示外界光照有多亮。最开始看到这里的时候其实挺不理解的,感觉这种表示方法很奇怪,这三个自由度变化我看不出来在变的究竟是什么量,于是和同学讨论了一下,找出来了这三个自由度对应频谱上的变化:色相对应的就是颜色最主要成分在频谱上的位置,也就是控制频谱左右移动;饱和度对应主要成分以外的其他成分的含量,也就是频谱上的集中度,当饱和度最大时对应的是频谱上特定的一根冲激谱线,当饱和度最小的时候,相当于每个颜色成分都有,此时颜色呈灰色;亮度对应主要频谱成分的功率值,当其值最小的时候相当于没有频率成分,因此呈现黑色,当值最大的时候,颜色主要成分的值超过了三种视锥细胞可以感受到的最大值(也就是三种视锥细胞都能感受到相同的值),此时颜色呈现白色。当然这是我们的理解,我也没有查阅相关资料去验证这种猜想的正确性。
要注意的是我们对颜色的感知实际的过程是实际颜色频谱在三种视锥细胞上的积分,我们把积分的值称为三基色刺激值(tristimulus values),视锥细胞会根据刺激值的大小传递不同的神经脉冲。
CIE 1931 色彩空间就是根据三个刺激值计算出来的色域,它将X、Y、Z归一化后用两个参数x、y的组合表示颜色,CIE空间可以表示的颜色范围更大,它更接近人眼可以看到的实际色彩范围。我们在显示器上能看到的范围实际上是CIE空间的一个子集(一个三角形)。
相机的感光原理是光线通过镜头,照射到CCD序列上,序列的大小直接决定了分辨率的大小。
对于每一个像素,理论上需要三个感光器件来分别接收R、G、B值,但是实际上我们在像素颜色感知的时候经常采用一种叫“BAYER PATTERN”的模式,即每个像素只用接收一个颜色的值,三种颜色感知交替出现,对于某一个像素点,另外的两种颜色根据相邻的像素计算得出(例如对于接收绿色的像素,它的R值由左右两个像素的R值平均得到,它的B值由上下两个像素的B值平均得到)。由于人眼对绿色最敏感,因此交替序列中绿色最多
对于某个像素的RGB值,我们通常用24bit表示(即R、G、B分别用8bit表示),当图像的分辨率不足的时候,就会产生图像分块的现象(马赛克),当用来表示RGB的位数不足的时候,颜色的量化等级不够多,就会产生假轮廓线(如下图)
Matlab是图像处理的好工具,它的imtool box经常被我们使用,以下是几个常用的函数。需要注意的是imshow中第二个参数若是带[],代表自动将图像中灰度值最小到最大之间的值映射到0-255。还需要注意的一点是图像中保存RGB三通道的数据类型是unit8,若是想对像素进行操作,则需要先将其转换成double,否则有可能出现截断误差导致结果错误。