侧边栏壁纸
博主头像
LittleAO的学习小站 博主等级

在知识的沙漠寻找绿洲

  • 累计撰写 125 篇文章
  • 累计创建 27 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

学习数字图像处理(2)——数字图像基础

LittleAO
2023-09-28 / 0 评论 / 0 点赞 / 59 阅读 / 0 字
温馨提示:
本文最后更新于2023-11-09,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

type: Post
status: Published
date: 2023/09/28
slug: digital_image_process-2
summary: 从人眼讲起,分析视觉特性,如何成像然后进行数字化,并学会如何评价一个图像质量的好坏。
tags: 数字图像处理, 笔记
category: 技术分享

第二章 数字图像基础

这一章我们会从人眼讲起,将我们的视觉特性,再与机器进行类比,来详细说明我们怎样成像然后进行数字化。数字化之后的图像有哪些我们需要注意的术语,学习如何评价一个图像质量的好坏。

2.1 人类视觉系统

学习数字图像处理,我们进行图像处理的目标对象是什么?是供人类进行观察的,我不能说这个图像处理过后人类看不到,只有特定的生物才能观察到。这样的数字图像就失去了意义。那么不妨一开始就来看看人类的视觉系统是怎么构成的吧。

我们上过生物课就会知道,人类视觉系统不只是单单包括人眼一个部分,它整个包含眼、神经和大脑多个部分。其中人眼用来接受光学信号来产生生物电信号,神经来传输生物电信号到达大脑的视觉中枢。大脑处理生物电信号形成决策。接下来我们就按照这个顺序来讲解各部分所担任的具体任务吧。

2.1.1 人眼的结构

图片来自于网络

图片来自于网络

人眼由三层膜包裹:外覆的角膜和巩膜、脉络膜、视网膜。

  • 角膜是坚硬并且透明的组织,它覆盖人眼的前表面。角膜后面的巩膜是包围眼球其余部分的不透明膜。
  • 脉络膜中含有血管网,它是眼睛的主要营养来源。脉络膜在最前端分为睫状体和虹膜。虹膜的收缩和扩张控制进人人眼的光量。
  • 眼睛最靠内部的膜是视网膜,它布满了整个后部的内壁。模式视觉由分布在视网膜表面上的各个分立光感受器提供。光感受器分为两类:锥状体杆状体

记住这个锥状体和杆状体,我们后面会用到。

2.1.2 人眼中图像的形成

晶状体和成像区域(视网膜)之间的距离是固定的,正确聚焦的焦距是通过改变晶状体的形状得到的。在远离或接近目标时,睫状体中的纤维通过分别压扁或加厚晶状体来实现聚焦。视网膜图像主要聚焦在中央凹区域。然后光感受器的相对激励作用产生感知,把辐射能量转换为最终由大脑解码的电脉冲。

2.1.3 亮度适应与辨别

还记得锥状体和杆状体吗,在不同的亮度下,这两种结构起着不同的作用,具体情况见下面的表格:

锥状细胞 杆状细胞
细胞数量(万) 600-700 7600-15000
敏感因素 彩色 亮度
视觉 明视觉 暗视觉
分辨力
分布位置 黄斑区 整个视网膜

在不同亮度情况下,不同细胞的工作状态不同:

  • 杆状细胞工作的光通量范围:10^{-6}\sim10^{0}ML;
  • 锥状细胞工作的光通量范围:10^{-3}\sim10^{4}ML;

举一个现实生活的例子,天黑时候我们的眼睛主要是杆状细胞在起作用,这时候我们很难在黑暗的环境中分辨颜色,而我们的分辨力也比较低。

2.2 视觉特性

马赫带现象

当观察两块亮度不同的区域时,边界处的亮度对比加强,使轮廓表现得特别明显。

来看下面这一张图:

学习数字图像处理(2)——数字图像基础 96b648014cb049edb053f2bbf3a17284/Untitled 1.png

你是否会发现在两个色块的边界处似乎轮廓十分的明显?

同时对比现象

当所有的方块有相同的强度,但背景色不同,我们人眼感知到的颜色不同:

Untitled

在这幅图中,中间的方块颜色是相同的,但是在暗色背景下我们会觉得方块会更亮一些,在亮色背景下,方块会变暗一些。

视错觉

人眼对物体形状的大小的感觉因物体的布置、背景条件的不同而不同。

Untitled

视觉残留

人眼对亮度的感觉不会随着光刺激的消失而立即消失,而是大致按指数规律逐渐减小。

电影就是现实生活中著名的例子,电影每张图片的出现时间只有二十四分之一秒,但通过视觉残留现象,我们能够把图片流畅的连接起来。

2.2 光和电磁波谱图

我们对图像颜色的感知依赖于发生光的频率。在上一章我们已经见到过了电磁波谱示意图,我们不妨再把它拿过来说明一下:

Untitled

我们把宇宙中所有的物质粗暴的分为两种:能够发光的和不能发光的。对于能够自行发光的物体,例如我们常用的显示器,它能很轻易地被人类的肉眼感知。但在平常的生活中,我们也能够感知到不能发光的物体。

如果学过初中物理就会知道,我们之所以能看见不会发光的物体,是因为有外来光的光线从物体的表面反射进了我们的眼睛,这才能让我们看见到物体。而对于不能发光的物体,必须要有外来光源的照射下才能显示出颜色。

一个非发光物体的颜色取决于光源和物质光的特性。对于颜色的感知依赖于入射光的光谱成分和反射光的频率。如果是同样的颜色被不同光源下照射,可能会呈现不同的颜色。若反射的可见光波长是相对平衡的,物体则呈现白色,若只反射红光,则看见的是红色。

2.3 图像感知和获取

我们的电子设备是如何获取周围的环境信息并生成图像的?也许你听过CMOS,这是其中获取场景图像信息的一种方法,下面我们将详细介绍传感器这一部分:

传感器

把照射量变为数字图像的三种传感器装置:

  1. 单元成像传感器,如光敏二极管:

Untitled

  1. 线成像传感器,如线CCD、平板扫描仪。我们打印机中的扫描仪用的就是线成像传感器。
  2. 阵列成像传感器,如面CCD,CMOS等。

简单的图像形成模型

使用f(x,y)表示图像,用下面的式子来描述:

f(x,y)=i(x,y)r(x,y)

  • f(x,y)表示图像的幅值分布,f值是一个正的标量,其物理意义取决于图像源。
  • i(x,y)是入射分量,其性质取决于照射源。
  • r(x,y)是反射分量,性质取决于成像物体的特性。

2.4 图像取样和量化

基本概念

先来了解几个基本概念:

  1. 图像数字化:将模拟图像经过离散化后,得到用数字表示的图像。图像的数字化包括采样和量化两个过程。
  2. 采样:在空间上的图像转换成离散的采样点。即空间坐标的离散化。具体表现就是每个像素点的相对位置。
  3. 量化:将采样后的各像素的灰度值从模拟量到离散整数值的转换称为图像灰度的量化,即:灰度的离散化。具体表现为每个像素的值。

Untitled

可以用矩阵进行表示。

  • 灰度级:灰度级表明图像中不同灰度的最大数量。常见的灰度级是256色(0-255),另外还有16级等。

那么如何计算一幅图像占用的存储空间,具体计算方法如下:

b为所存储数字图像用的比特数,M,N是图像的长和宽的像素数,2^k为图像的灰度级:

b=M\times N\times k

  • 对比度:一幅图像中最高和最低灰度区间的灰度差,可按极差的意思理解,反映的是灰度方差的大小。其度量单位是各个像素灰度的标准差。

分辨率

  • 空间分辨率:图像空间中可分辨的最小细节。
  • 灰度分辨率:图像灰度级中可分辨的最小变化。

空间分辨率越高,图像质量越好,空间分辨率越低,图像质量越差。空间分辨率过小,则会出现棋盘模式。

灰度分辨率越低,图像质量越差。灰度分辨率过低会出现伪轮廓。

既然如此,我们在采样和量化的过程中需要根据具体情况进行调整,在细节丰富上和图像大小取得一个平衡点。采样和量化的原则有以下两条:

  1. 对于细节丰富的图像,应该细采样粗量化,避免模糊。
  2. 对于缓变的图像,应该粗采样细量化,避免假轮廓。

图像的放大和缩小

  • 内插:是用已知数据来估计未知位置的值的过程。内插通常在图像的放大、缩小、旋转和几何校正等任务中使用。

下面我们来分析这样一种情况:一个分辨率为500$\times500的图像,现在欲将它扩大到750\times750.一种简易的方法是将750\times750网格缩小到500\times$500,然后每个像素格选取图像中最接近的像素。这种方法称之为最近邻内插。

最近邻内插法虽然简单粗暴,但是会造成我们不想要的失真效果,例如严重的直边失真。

还有一种双线性内插法使用邻近4个像素的灰度来计算给定位置的灰度。而双三次内插是一种复杂度更高的方法,其像素值由16个最近邻点的求出。双三次内插法是我们所熟悉的Adobe Photoshop中图像编辑的标准内插方法。

图像收缩的方法就是按照采样定理获得的图像再抽样,即每隔k个像素保留一个像素,其余的丢掉。

2.5 像素间的基本关系

相邻

常见的像素位置关系有以下几种:4-邻域、D-邻域、8-邻域。

  • 4-邻域指的是该像素上下左右四个像素。用N_4(p)表示。
  • D-邻域指的是该像素左上、左下、右上、右下四个像素,用N_D(p)表示。
  • 8-邻域指的是该像素周围8个像素,用N_8(p)表示。

4-邻域、8-邻域、D-邻域

4-邻域、8-邻域、D-邻域

邻接性

邻接指的是像素之间空间上相邻,灰度上相似。常见的有4邻接、8邻接和m邻接。

将灰度值集合记为V,在二值图像,V=\{1\};在灰度图,我们可以把8-16之间的像素归为邻接,则V=\{8,9,10,11,12,13,14,15,16\}

  • 4邻接:如果qN_4(p)中,具有V中数值的两个像素p,q是4邻接的。
  • 8邻接:如果qN_8(p)中,具有V中数值的两个像素p,q是8邻接的。

4邻接

4邻接

8邻接

8邻接

  • m邻接:如果qN_4(p)中,或者qN_D(p)中,且集合N_4(p)\cap N_4(q)的交集像素中没有灰度值属于V值的像素,则具有V值像素的pqm邻接的。如图所示,黄色的像素均不属于V

m邻接情况1
m邻接情况1

m邻接情况2

m邻接情况2

下面这种情况就不属于m邻接:

Untitled

连通性

S表示一幅图像中的子集,p,qS中的某个像素,如果它们之间存在一个完全由S中的像素组成的通路,则说pqS中是连通的。

Untitled

如图所示,pq连通,但p不和r连通。

  • 连通性:对于S中的任意像素pS中连通到该像素的像素集合叫做S的连通分量。如上图中所有的灰色像素可以组成一个连通分量。
  • 连通集:如果S中仅有一个连通分量,则集合S叫做连通集。

边界

区域变焦是至少有一个背景邻点的像素集合。

距离

描述图像中像素之间的距离。有以下几种度量方法:

设像素p,q其坐标是(x,y)(s,t)

  • 欧式距离:D_e(p,q)=[(x-s)^2+(y-t)^2]^{1/2}
  • D_4距离(直角):D_4(p,q)=|x-s|+|y-t|
  • D_8距离(先斜再直):D_8(p,q)=\max(|x-s|,|y-t|)

Untitled

2.6 数字图像处理基本运算

小学我们学过加减乘除等四则运算,到了编程我们学习了逻辑运算,那么在图像处理中是否存在着类似这样的运算呢,答案是肯定的,我们把有关数字图像处理中的基本运算的分成以下几种:

  1. 算术运算:堆垛幅图像做处理,不改变像素的空间位置。
    • 代数运算
    • 逻辑运算
  2. 空间操作:对单幅图像做处理
    • 非几何运算
    • 几何运算
  3. 图像变换:由空间域到其他域。例如频域。

加法运算

对两幅输入图像进行点对点的加、减、乘或除计算得到的图像。

C(x,y)=A(x,y)+B(x,y)

应用举例:去除叠加性噪音、生成图像叠加效果。

去除叠加性噪音的方法:

\overline{g}(x,y)=\frac1K\sum\limits^k_{i=1}g_i(x,y)

K增加时,各位置的像素值的噪声变化率将减小。意味着随着噪声图像使用量的增加,\overline g(x,y)越来越接近原始图像f(x,y)

左:原始图像,右:添加了加性噪声的图像

左:原始图像,右:添加了加性噪声的图像

左:经过平均处理后的图像,右:添加了加性噪声的图像

左:经过平均处理后的图像,右:添加了加性噪声的图像

减法运算

表示两幅图像的差异,由两幅图像对应像素点的差得到:

G(x,y)=f(x,y)-h(x,y)

应用举例:去除不需要的叠加性图案、检测同一场景两幅图像之间的变化、计算物体边界的梯度。

乘法运算

C(x,y)=A(x,y)\times B(x,y)

应用距离:图像的局部显示、校正阴影。

逻辑运算

逻辑运算:求反、异或、或、与。

  • 与、或:可用于一幅图像中提取子图像。
  • 非:可以实现图像取反。
  • 疑惑:实现图像的加密和解密。

非几何运算

改变像素幅值,不改变像素的空间位置,有点运算和领域操作两种。

  • 点运算:对于一幅输入图像,将产生一幅输出图像,输出图像的每个像素点的灰度值由输入像素点决定。例如我们可以改变一幅图像的对比度。

    线性点运算:

    I_{\text{out}}(x,y)=a\times I_{\text {in}}(x,y)+b

    除此之外,还有非线性点运算。

  • 领域操作:某像素点的灰度值由周围的像素值确定。

几何运算

像素的坐标发生了变化,有关像素的空间变换有以下几种情况:

  1. 等积变换:允许旋转长方形,保持大小和形状不变。
  2. 类似变换:保持形状不变,但不保持大小不变。
  3. 仿射变换:允许长方形按角度变形,但保留线的平行性。
  4. 投影变换:允许长方形的角度和长度变形,使长方形变换成不规则四边形。
  5. 拓扑变换:保持对象的拓扑性质,但不保持形不变,例如将长方形变换成圆形。

其数学表达式如下:

  • 旋转,旋转后需要平移变换,进行插值处理。

    \begin{bmatrix} x'\\y'\\1 \end{bmatrix}_{\text{new}}=\begin{bmatrix} a(x,y)\\b(x,y)\\1 \end{bmatrix}_{\text{new}}=\begin{bmatrix} \cos(\theta)&-\sin(\theta)&0\\ \sin(\theta)&\cos(\theta)&0\\ 0&0&1\\ \end{bmatrix}\begin{bmatrix} x\\y\\1 \end{bmatrix}_{\text{old}}

    Untitled

  • 平移:

    \begin{bmatrix} x'\\y'\\1 \end{bmatrix}_{\text{new}}=\begin{bmatrix} a(x,y)\\b(x,y)\\1 \end{bmatrix}_{\text{new}}=\begin{bmatrix} 1&0&x_0\\ 0&1&y_0\\ 0&0&1\\ \end{bmatrix}\begin{bmatrix} x\\y\\1 \end{bmatrix}_{\text{old}}

  • 缩放:x方向缩放c倍,y方向缩放d倍。放大需要插值。

    \begin{bmatrix} x'\\y'\\1 \end{bmatrix}_{\text{new}}=\begin{bmatrix} a(x,y)\\b(x,y)\\1 \end{bmatrix}_{\text{new}}=\begin{bmatrix} 1/c&0&0\\ 0&1/d&1\\ 0&0&1\\ \end{bmatrix}\begin{bmatrix} x\\y\\1 \end{bmatrix}_{\text{old}}

插值

图像插值我们已经提过了,这里进行总结:

  • 最近邻域内插
  • 双线性内插
  • 高阶插值(双三次插值)

频域变换

图像中也可以进行傅里叶变换,具体的知识我们会在后面的课程中具体讲解。

0

评论区