- 数字图像处理
- 数字图像处理 - 首页
- 数字图像处理 - 图像处理导论
- 数字图像处理 - 信号与系统导论
- 数字图像处理 - 摄影史
- 数字图像处理 - 应用与用途
- 数字图像处理 - 维度的概念
- 数字图像处理 - 相机成像原理
- 数字图像处理 - 相机机制
- 数字图像处理 - 像素的概念
- 数字图像处理 - 透视变换
- 数字图像处理 - 每像素比特数的概念
- 数字图像处理 - 图像类型
- 数字图像处理 - 颜色代码转换
- 数字图像处理 - 灰度图到RGB转换
- 数字图像处理 - 采样的概念
- 数字图像处理 - 像素分辨率
- 数字图像处理 - 放大的概念
- 数字图像处理 - 放大方法
- 数字图像处理 - 空间分辨率
- 数字图像处理 - 像素、点和每英寸线条数
- 数字图像处理 - 灰度分辨率
- 数字图像处理 - 量化的概念
- 数字图像处理 - ISO 感光度曲线
- 数字图像处理 - 抖动的概念
- 数字图像处理 - 直方图导论
- 数字图像处理 - 亮度和对比度
- 数字图像处理 - 图像变换
- 数字图像处理 - 直方图滑动
- 数字图像处理 - 直方图拉伸
- 数字图像处理 - 概率论导论
- 数字图像处理 - 直方图均衡化
- 数字图像处理 - 灰度变换
- 数字图像处理 - 卷积的概念
- 数字图像处理 - 掩码的概念
- 数字图像处理 - 模糊的概念
- 数字图像处理 - 边缘检测的概念
- 数字图像处理 - Prewitt算子
- 数字图像处理 - Sobel算子
- 数字图像处理 - Robinson罗盘掩模
- 数字图像处理 - Krisch罗盘掩模
- 数字图像处理 - 拉普拉斯算子
- 数字图像处理 - 频域分析
- 数字图像处理 - 傅里叶级数和变换
- 数字图像处理 - 卷积定理
- 数字图像处理 - 高通滤波器与低通滤波器
- 数字图像处理 - 颜色空间导论
- 数字图像处理 - JPEG压缩
- 数字图像处理 - 光学字符识别
- 数字图像处理 - 计算机视觉与图形学
- 数字图像处理有用资源
- 数字图像处理快速指南
- 数字图像处理 - 有用资源
- 数字图像处理 - 讨论
数字图像处理快速指南
数字图像处理导论
导论
信号处理是电子工程和数学的一个学科,它处理模拟和数字信号的分析和处理,并处理信号的存储、过滤和其他操作。这些信号包括传输信号、声音或语音信号、图像信号以及其他信号等等。
在所有这些信号中,处理输入为图像,输出也为图像的信号类型的领域称为图像处理。顾名思义,它处理图像的处理。
它可以进一步细分为模拟图像处理和数字图像处理。
模拟图像处理
模拟图像处理是对模拟信号进行的。它包括对二维模拟信号的处理。在这种类型的处理中,图像通过改变电信号的方式用电子方式进行处理。常见的例子包括电视图像。
随着时间的推移,数字图像处理由于其更广泛的应用而占据了模拟图像处理的主导地位。
数字图像处理
数字图像处理处理的是开发一个数字系统,该系统对数字图像执行操作。
什么是图像
图像只不过是一个二维信号。它由数学函数f(x,y)定义,其中x和y是水平和垂直的两个坐标。
f(x,y)在任何点的值都给出了图像该点的像素值。
上图是在计算机屏幕上看到的数字图像的示例。但实际上,这张图像只不过是0到255之间的一组二维数字数组。
128 | 30 | 123 |
232 | 123 | 321 |
123 | 77 | 89 |
80 | 255 | 255 |
每个数字代表函数f(x,y)在任何点的值。在这种情况下,值128、230、123分别代表单个像素值。图片的尺寸实际上就是这个二维数组的尺寸。
数字图像和信号之间的关系
如果图像是一个二维数组,那么它与信号有什么关系呢?为了理解这一点,我们需要首先了解什么是信号?
信号
在物理世界中,任何可以通过时间、空间或任何更高维度测量的量都可以被视为信号。信号是一个数学函数,它传递一些信息。信号可以是一维的、二维的或更高维度的。一维信号是在时间上测量的信号。常见的例子是语音信号。二维信号是在其他一些物理量上测量的信号。二维信号的例子是数字图像。我们将在下一个教程中更详细地了解如何形成和解释一维或二维信号以及更高维的信号。
关系
由于任何在物理世界中在两个观察者之间传递信息或广播消息的东西都是信号。这包括语音(人声)或图像作为信号。因为当我们说话时,我们的声音被转换成声波/信号,并根据我们说话的对象进行转换。不仅如此,数字相机的工作方式也是如此,因为从数字相机获取图像涉及将信号从系统的一个部分传输到另一个部分。
数字图像是如何形成的
由于从相机捕捉图像是一个物理过程。阳光被用作能量来源。传感器阵列用于图像采集。因此,当阳光照射到物体上时,物体反射的光量由传感器感知,并且根据感知的数据生成连续的电压信号。为了创建数字图像,我们需要将此数据转换为数字形式。这涉及采样和量化。(稍后讨论)。采样和量化的结果是二维数组或数字矩阵,它们就是数字图像。
重叠领域
机器/计算机视觉
机器视觉或计算机视觉处理的是开发一个系统,其中输入是图像,输出是一些信息。例如:开发一个扫描人脸并打开任何类型锁的系统。这个系统看起来像这样。
计算机图形学
计算机图形学处理的是从对象模型生成图像,而不是由某些设备捕捉图像。例如:对象渲染。从对象模型生成图像。这样的系统看起来像这样。
人工智能
人工智能或多或少是将人类智能融入机器的研究。人工智能在图像处理中有很多应用。例如:开发计算机辅助诊断系统,帮助医生解释X射线、MRI等的图像,然后突出显示医生需要检查的显眼部分。
信号处理
信号处理是一个总称,图像处理属于它。物理世界(3D世界)中物体反射的光量通过相机的镜头,变成2D信号,从而形成图像。然后使用信号处理方法对该图像进行数字化,然后在数字图像处理中处理该数字图像。
信号与系统导论
本教程涵盖了理解数字图像处理概念所必需的信号和系统的基础知识。在深入探讨具体概念之前,让我们首先定义一些简单的术语。
信号
在电子工程中,表示某些信息的根本量称为信号。信息是什么并不重要,即:模拟信息还是数字信息。在数学中,信号是一个传递某些信息的函数。事实上,任何可以通过时间、空间或任何更高维度测量的量都可以被视为信号。信号可以是任何维度,可以是任何形式。
模拟信号
信号可以是模拟量,这意味着它是相对于时间定义的。它是一个连续信号。这些信号在连续的独立变量上定义。它们难以分析,因为它们携带大量的值。由于样本值很大,它们非常精确。为了存储这些信号,需要无限的内存,因为它可以在实线上达到无限的值。模拟信号用正弦波表示。
例如
人声
人声是模拟信号的一个例子。当你说话时,产生的声音以压力波的形式通过空气传播,因此属于一个数学函数,具有空间和时间的自变量以及对应于气压的值。
另一个例子是下图所示的正弦波。
Y = sin(x),其中x是自变量
数字信号
与模拟信号相比,数字信号更容易分析。它们是不连续信号。它们是对模拟信号的近似。
数字代表离散值,因此这意味着它们使用特定值来表示任何信息。在数字信号中,只使用两个值来表示某些东西,即:1和0(二进制值)。数字信号不如模拟信号精确,因为它们是在一段时间内获取的模拟信号的离散样本。但是,数字信号不受噪声的影响。因此,它们持续时间长,易于解释。数字信号用方波表示。
例如
计算机键盘
每当按下键盘上的某个键时,就会向键盘控制器发送相应的电信号,其中包含该键的ASCII值。例如,按下键盘键a时生成的电信号以0和1的形式携带数字97的信息,这是字符a的ASCII值。
模拟信号和数字信号的区别
比较元素 | 模拟信号 | 数字信号 |
---|---|---|
分析 | 困难 | 可分析 |
表示 | 连续的 | 非连续的 |
精度 | 更精确 | 不太精确 |
存储 | 无限内存 | 易于存储 |
受噪声影响 | 是 | 否 |
记录技术 | 原始信号得以保留 | 对信号进行采样并保留 |
示例 | 人声、温度计、模拟电话等 | 计算机、数字电话、数字笔等 |
系统
系统由其处理的输入和输出类型定义。由于我们处理的是信号,因此在我们的例子中,系统可以是数学模型、一段代码/软件、物理设备或黑盒,其输入为信号,对该信号进行处理,输出也是信号。输入称为激励,输出称为响应。
上图显示了一个系统,其输入和输出都是信号,但输入是模拟信号,输出是数字信号。这意味着我们的系统实际上是一个将模拟信号转换为数字信号的转换系统。
让我们来看看这个黑盒系统的内部
模拟信号到数字信号的转换
由于模拟到数字转换以及反向转换涉及许多概念,我们将仅讨论与数字图像处理相关的那些概念。转换过程中涉及两个主要概念。
采样
量化
采样
顾名思义,采样可以定义为获取样本。沿x轴获取数字信号的样本。采样是在自变量上进行的。对于这个数学方程
采样是在x变量上进行的。我们也可以说,x轴(无限值)到数字的转换是在采样下完成的。
采样进一步分为上采样和下采样。如果x轴上的值范围较小,我们将增加值的样本数。这称为上采样,反之称为下采样。
量化
顾名思义,量化可以定义为划分成量子(分区)。量化是在因变量上进行的。它与采样相反。
对于这个数学方程 y = sin(x)
量化是在Y变量上进行的。它是在y轴上进行的。将y轴的无限值转换为1、0、-1(或任何其他级别)称为量化。
这是将模拟信号转换为数字信号时涉及的两个基本步骤。
下图显示了信号的量化。
为什么我们需要将模拟信号转换为数字信号?
第一个也是最明显的原因是,数字图像处理处理的是数字图像,即数字信号。因此,无论何时捕获图像,都将其转换为数字格式,然后进行处理。
第二个也是重要的原因是,为了用数字计算机对模拟信号进行运算,必须将模拟信号存储在计算机中。而要存储模拟信号,需要无限的内存来存储它。由于这是不可能的,所以我们将信号转换为数字格式,然后将其存储在数字计算机中,然后对其进行运算。
连续系统与离散系统
连续系统
输入和输出都是连续信号或模拟信号的系统称为连续系统。
离散系统
输入和输出都是离散信号或数字信号的系统称为数字系统。
摄影史
照相机的起源
照相机和摄影的历史并不完全相同。照相机的概念远早于摄影的概念。
暗箱
照相机的历史起源于亚洲。照相机的原理首先由中国哲学家墨子提出。它被称为暗箱。照相机就是从这个原理发展而来的。
暗箱一词来源于两个不同的词:Camera和Obscura。Camera的意思是房间或某种类型的暗室,Obscura的意思是黑暗的。
中国哲学家提出的这个概念包括一个装置,可以将周围环境的图像投影到墙上。然而,它并非由中国人制造。
暗箱的创造
中国人的概念由一位穆斯林科学家伊本·海赛姆(Abu Ali Al-Hassan Ibn al-Haitham,通常被称为伊本·海赛姆)变成了现实。他制造了第一个暗箱。他的照相机遵循针孔相机的原理。他大约在1000年左右制造了这个装置。
便携式相机
1685年,约翰·赞恩制造了第一台便携式相机。在此装置出现之前,相机的大小相当于一个房间,并不便携。虽然爱尔兰科学家罗伯特·博伊尔和罗伯特·胡克制造了一种可移动的相机,但该装置仍然非常庞大,难以从一个地方搬到另一个地方。
摄影的起源
虽然暗箱是由一位穆斯林科学家在1000年制造的,但它第一次实际使用是在13世纪由英国哲学家罗杰·培根描述的。罗杰建议使用相机来观察日食。
达芬奇
虽然在15世纪之前已经有了很大的改进,但莱昂纳多·迪·塞尔·皮耶罗·达·芬奇所做的改进和发现是显著的。达芬奇是一位伟大的艺术家、音乐家、解剖学家和军事工程师。他被认为发明了许多东西。他最著名的画作之一包括《蒙娜丽莎》的画像。
达芬奇不仅按照针孔相机的原理制造了暗箱,还将其用作绘画辅助工具。在他的作品《大西洋古抄本》中,定义了许多暗箱的原理。
他的相机遵循针孔相机的原理,可以描述为:
当被照射物体的图像穿过一个小孔进入一个非常黑暗的房间时,你会看到[在对面的墙上]这些物体以其正确的形状和颜色,尺寸缩小,位置反转,这是由于光线的交叉造成的。
第一张照片
第一张照片是由法国发明家约瑟夫·尼埃普斯于1814年拍摄的。他用沥青涂抹锡板,然后曝光,从而捕捉到勒格拉斯窗户外的第一张照片。
第一张水下照片
第一张水下照片是由英国数学家威廉·汤姆森使用防水箱拍摄的。这是在1856年完成的。
胶片的起源
胶片的起源是由美国发明家和慈善家乔治·伊士曼提出的,他被认为是摄影的先驱。
他创立了一家名为伊士曼柯达的公司,该公司以开发胶片而闻名。该公司于1885年开始生产纸质胶卷。他首先创造了柯达相机,然后是布朗尼相机。布朗尼是一款盒式相机,由于其快照功能而广受欢迎。
胶卷出现后,相机行业再次蓬勃发展,一项发明又导致另一项发明。
徕卡和雅格
徕卡和雅格是分别于1925年和1939年开发的两款模拟相机。徕卡相机使用35毫米电影胶片制造。
雅格是另一款使用35毫米格式的模拟相机,与徕卡相比,价格相对便宜,因此非常受欢迎。
模拟闭路电视摄像机
1942年,德国工程师瓦尔特·布鲁赫开发并安装了第一套模拟闭路电视摄像机系统。他还被认为在1960年发明了彩色电视。
Photo Pac
第一台一次性相机于1949年由Photo Pac推出。这款相机只是一次性使用的相机,其中已经包含一卷胶卷。Photo pac的后续版本具有防水功能,甚至还配备了闪光灯。
数码相机
索尼Mavica
索尼于1981年推出的Mavica(磁带摄像机)是数码相机领域的第一个改变游戏规则的产品。图像记录在软盘上,稍后可以在任何显示器上查看。
它不是纯数码相机,而是一款模拟相机。但由于其将图像存储在软盘上的功能而广受欢迎。这意味着现在可以长期保存图像,并且可以在软盘上保存大量图片,当软盘满了时,可以用新的空白软盘替换。Mavica能够在一张软盘上存储25张图像。
Mavica推出的另一个重要功能是其0.3兆像素的拍照能力。
数码相机
富士DS-1P相机由富士胶片于1988年推出,是第一款真正的数码相机。
尼康D1是一款2.74兆像素相机,是尼康开发的第一款商用数码单反相机,专业人士也能轻松购买。
如今,数码相机已内置于具有超高分辨率和质量的手机中。
应用和用途
由于数字图像处理应用非常广泛,几乎所有技术领域都受到DIP的影响,我们只讨论DIP的一些主要应用。
数字图像处理不仅仅局限于调整相机拍摄的日常图像的空间分辨率。它不仅仅局限于提高照片的亮度等。它远不止于此。
电磁波可以被认为是粒子流,其中每个粒子都以光速运动。每个粒子都包含一束能量。这束能量称为光子。
根据光子的能量,电磁波谱如下所示。
在这个电磁波谱中,我们只能看到可见光谱。可见光谱主要包括七种不同的颜色,通常称为(VIBGOYR)。VIBGOYR代表紫罗兰色、靛蓝色、蓝色、绿色、橙色、黄色和红色。
但这并不否定光谱中其他物质的存在。我们的肉眼只能看到可见部分,我们看到的所有物体都在其中。但相机可以看到肉眼看不到的其他东西。例如:X射线、伽马射线等。因此,数字图像处理也对所有这些物质进行分析。
这种讨论引出了另一个问题,即
为什么我们还需要分析电磁波谱中的其他物质?
这个问题的答案在于,X射线等其他物质已广泛应用于医学领域。分析伽马射线是必要的,因为它广泛应用于核医学和天文观测。电磁波谱中的其他物质也是如此。
数字图像处理的应用
数字图像处理广泛应用于的一些主要领域如下所示
图像锐化和复原
医学领域
遥感
传输和编码
机器/机器人视觉
色彩处理
模式识别
视频处理
显微成像
其他
图像锐化和复原
图像锐化和复原在此指的是对现代相机拍摄的图像进行处理,使其变得更好,或者以某种方式操纵图像以达到预期效果的过程。它指的是Photoshop通常所做的工作。
这包括缩放、模糊、锐化、灰度到彩色转换、边缘检测及其反向操作、图像检索和图像识别。常见的例子有:
原始图像
缩放后的图像
模糊图像
锐化图像
边缘
医学领域
数字图像处理在医学领域中的常见应用包括:
伽马射线成像
PET扫描
X射线成像
医学CT
紫外成像
紫外成像
在遥感领域,地球的区域由卫星或高地扫描,然后进行分析以获取相关信息。数字图像处理在遥感领域的一个特定应用是检测地震造成的基础设施损坏。
即使严重损坏集中在某些区域,要掌握这些损坏也需要较长时间。由于地震影响的区域有时非常广阔,无法用肉眼检查以评估损失。即使可以,也是一个非常繁琐费时的过程。因此,数字图像处理提供了一种解决方案。从地面上方捕捉受影响区域的图像,然后对其进行分析以检测地震造成的各种类型的损坏。
分析中的关键步骤包括:
边缘提取
各种类型边缘的分析和增强
传输和编码
第一张通过电线传输的图片是从伦敦通过海底电缆发送到纽约的。发送的图片如下所示。
这张图片从一个地方到另一个地方花了三个小时。
现在想象一下,今天我们能够以几秒钟的延迟从一个大陆看到另一个大陆的实时视频或监控录像。这意味着在这个领域也做了大量的工作。这个领域不仅关注传输,还关注编码。许多不同的格式已经被开发出来,用于高带宽或低带宽的图片编码,然后通过互联网等进行流传输。
机器/机器人视觉
除了机器人今天面临的许多挑战之外,最大的挑战之一仍然是提高机器人的视觉能力。使机器人能够看到物体、识别它们、识别障碍物等等。该领域做出了许多贡献,并引入了另一个完整的计算机视觉领域来处理它。
障碍物检测
障碍物检测是通过图像处理完成的一项常见任务,它通过识别图像中的不同类型的物体,然后计算机器人与障碍物之间的距离。
循迹机器人
如今大多数机器人都是通过跟随线路来工作的,因此被称为循迹机器人。这帮助机器人沿着其路径移动并执行某些任务。这也通过图像处理实现。
色彩处理
颜色处理包括彩色图像和使用的不同颜色空间的处理。例如RGB颜色模型、YCbCr、HSV。它还涉及研究这些彩色图像的传输、存储和编码。
模式识别
模式识别涉及图像处理和包括机器学习(人工智能的一个分支)在内的各个其他领域的学习。在模式识别中,图像处理用于识别图像中的物体,然后使用机器学习来训练系统以适应模式的变化。模式识别用于计算机辅助诊断、手写识别、图像识别等。
视频处理
视频只不过是图像的快速运动。视频的质量取决于每分钟的帧数/图片数量以及所用每帧的质量。视频处理包括降噪、细节增强、运动检测、帧速率转换、纵横比转换、颜色空间转换等。
维度的概念
我们将通过这个例子来理解维度的概念。
假设你有一个住在月球上的朋友,他想要在你生日那天送你礼物。他问你在地球上的住址。唯一的问题是月球上的快递服务不理解字母地址,只理解数字坐标。那么你如何告诉他你在地球上的位置呢?
这就是维度的概念。维度定义了在空间中指出任何特定物体位置所需的最小点数。
让我们回到之前的例子,你需要将你在地球上的位置发送给住在月球上的朋友。你给他发送三对坐标。第一个称为经度,第二个称为纬度,第三个称为高度。
这三个坐标定义了你在地球上的位置。前两个定义你的位置,第三个定义你高于海平面的高度。
这意味着只需要三个坐标就能定义你在地球上的位置。这意味着你生活在一个三维世界中。这不仅回答了关于维度的问题,还回答了我们为什么生活在三维世界中的原因。
由于我们是在参考数字图像处理来学习这个概念,所以我们现在将把这个维度的概念与图像联系起来。
图像的维度
如果我们生活在三维世界中,那么我们捕捉到的图像的维度是什么呢?图像是一个二维的,这就是我们也把图像定义为二维信号的原因。图像只有高度和宽度。图像没有深度。请看下面的图像。
如果你观察上面的图形,它显示它只有两个轴,即高度轴和宽度轴。你无法从这张图像中感知深度。这就是我们说图像是一个二维信号的原因。但是我们的眼睛能够感知三维物体,但这将在下一节教程中更详细地解释相机是如何工作的以及图像是如何感知的。
这个讨论引出了另一个问题,即如何从二维形成三维系统。
电视是如何工作的?
如果我们观察上面的图像,我们会看到它是一个二维图像。为了将其转换为三维,我们需要另一个维度。让我们以时间作为第三个维度,在这种情况下,我们将这个二维图像移动到第三个维度时间上。电视中发生的相同概念,这帮助我们感知屏幕上不同物体的深度。这是否意味着电视上显示的内容或我们在电视屏幕上看到的内容是3D的?是的,我们可以这么说。原因是,对于电视来说,如果我们播放视频,视频只不过是在时间维度上移动的二维图像。由于二维物体在第三个维度(时间)上移动,所以我们可以说它是三维的。
信号的不同维度
一维信号
一维信号的常见例子是波形。它可以用数学表示为:
F(x) = 波形
其中x是自变量。因为它是一维信号,所以只有一个变量x被使用。
一维信号的图示如下:
上图显示了一个一维信号。
现在这又引出了另一个问题,那就是,即使它是一维信号,为什么它有两个轴呢?这个问题的答案是,即使它是一维信号,但我们是在二维空间中绘制它。或者我们可以说,我们表示这个信号的空间是二维的。这就是为什么它看起来像二维信号。
也许你可以通过观察下图更好地理解一维的概念。
现在回到我们最初关于维度的讨论,将上图看作一条实线,从一点到另一点具有正数。现在,如果我们必须解释这条线上任何点的位置,我们只需要一个数字,这意味着只有一个维度。
二维信号
二维信号的常见例子是图像,这已在上面讨论过。
正如我们已经看到的那样,图像是一个二维信号,即它有两个维度。它可以用数学表示为:
F(x, y) = 图像
其中x和y是两个变量。二维的概念也可以用数学来解释为:
在上图中,将正方形的四个角分别标记为A、B、C和D。如果我们称图中的一个线段为AB,另一个为CD,那么我们可以看到这两个平行线段连接起来构成一个正方形。每条线段对应一个维度,所以这两条线段对应两个维度。
三维信号
顾名思义,三维信号是指具有三个维度的信号。开头已经讨论过最常见的例子,那就是我们的世界。我们生活在一个三维世界中。这个例子已经被非常详细地讨论过了。三维信号的另一个例子是立方体或体数据,或者最常见的例子是动画或3D卡通人物。
三维信号的数学表示为:
F(x,y,z) = 动画角色。
三维中包含另一个轴或维度Z,它给出了深度的错觉。在笛卡尔坐标系中,它可以被视为:
四维信号
在四维信号中,涉及四个维度。前三个与三维信号相同:(X, Y, Z),添加的第四个是T(时间)。时间通常被称为时间维度,它是一种衡量变化的方式。数学上,一个四维信号可以表示为:
F(x,y,z,t) = 动画电影。
四维信号的常见例子可以是3D动画电影。因为每个角色都是一个3D角色,然后它们随着时间移动,因此我们看到了一个更像现实世界的三维电影的错觉。
这意味着实际上动画电影是四维的,即3D角色在第四维度时间上的移动。
相机成像
人眼是如何工作的?
在我们讨论模拟和数字相机成像之前,我们必须首先讨论人眼的成像。因为相机遵循的基本原理是从人眼的工作方式中借鉴的。
当光线照射到特定物体上时,它会在穿过物体后反射回来。光线通过眼睛晶状体时,会形成一个特定角度,图像就会在视网膜(眼球后壁)上形成。形成的图像是倒立的。然后,这个图像会被大脑解读,让我们能够理解事物。由于角度的形成,我们能够感知到所看到物体的尺寸和深度。透视变换教程中对此进行了更详细的解释。
正如上图所示,当阳光照射到物体上(在本例中,物体是一张脸)时,它会反射回来,不同的光线穿过晶状体时会形成不同的角度,物体的倒立图像就会在后壁上形成。图的最后部分表示该物体已被大脑解读并重新正立。
现在让我们回到模拟和数码相机成像的讨论。
模拟相机成像
在模拟相机中,成像是由于用于成像的胶片上发生的化学反应。
模拟相机使用35毫米胶片。图中用35毫米胶卷盒表示。这卷胶片涂有卤化银(一种化学物质)。
模拟相机使用35毫米胶片。图中用35毫米胶卷盒表示。这卷胶片涂有卤化银(一种化学物质)。
光不过是由称为光子的小粒子组成的。因此,当这些光子穿过相机时,它会与胶片上的卤化银粒子发生反应,从而产生图像的底片。
为了更好地理解它,让我们看一下这个等式。
光子(光粒子)+ 卤化银 → 银 → 底片
这只是基础知识,虽然成像涉及许多其他关于光线内部通过的原理,以及快门和快门速度以及光圈及其开口的原理,但现在我们将继续下一部分。虽然我们快门和光圈教程中已经讨论了大多数这些概念。
这只是基础知识,虽然成像涉及许多其他关于光线内部通过的原理,以及快门和快门速度以及光圈及其开口的原理,但现在我们将继续下一部分。虽然我们快门和光圈教程中已经讨论了大多数这些概念。
数码相机成像
在数码相机中,成像不是由于发生的化学反应,而是比这复杂一些。在数码相机中,使用CCD传感器阵列进行成像。
通过CCD阵列成像
CCD代表电荷耦合器件。它是一种图像传感器,像其他传感器一样,它感知数值并将它们转换为电信号。在CCD的情况下,它感知图像并将其转换为电信号等等。
这个CCD实际上是阵列或矩形网格的形状。它就像一个矩阵,矩阵中的每个单元格都包含一个传感器,用于感知光子的强度。
与模拟相机一样,在数码相机中,当光线照射到物体上时,光线会在撞击物体后反射回来,并被允许进入相机内部。
CCD阵列的每个传感器本身都是一个模拟传感器。当光子照射到芯片上时,它会被保存在每个光电传感器中作为一个小的电荷。每个传感器的响应直接等于照射在传感器表面的光量或(光子)能量。
由于我们已经将图像定义为二维信号,并且由于CCD阵列的二维形成,可以从这个CCD阵列获得完整的图像。
它具有有限数量的传感器,这意味着它可以捕捉的细节有限。此外,每个传感器针对照射在其上的每个光子粒子只能有一个值。
因此,光子撞击(电流)的数量被计数和存储。为了准确测量这些,外部CMOS传感器也与CCD阵列相连。
像素简介
CCD阵列中每个传感器的值指的是单个像素的值。传感器数量 = 像素数量。这也意味着每个传感器只能有一个值。
图像存储
CCD阵列存储的电荷一次一个像素地转换为电压。在附加电路的帮助下,该电压被转换为数字信息,然后被存储。
每家生产数码相机的公司都会制造自己的CCD传感器。其中包括索尼、三菱、尼康、三星、东芝、富士胶片、佳能等等。
除了其他因素外,拍摄图像的质量还取决于所使用的CCD阵列的类型和质量。
相机机制
在本教程中,我们将讨论一些基本的相机概念,例如光圈、快门、快门速度、ISO,以及我们将讨论这些概念的综合使用以捕捉良好的图像。
光圈
光圈是一个小孔,允许光线进入相机内部。这是光圈的图片。
你会看到光圈内部有一些像叶片一样的东西。这些叶片形成一个可以打开和关闭的八边形形状。因此,可以看出,叶片张开得越多,光线必须通过的孔就越大。孔越大,允许进入的光线就越多。
效果
光圈的效果直接对应于图像的亮度和暗度。如果光圈开得很大,它会允许更多光线进入相机。更多的光线会产生更多的光子,最终导致更亮的图像。
下面显示了这个例子
考虑这两张照片
右边的照片看起来更亮,这意味着当它被相机捕捉时,光圈是完全打开的。与左边的那张照片相比,它比第一张照片暗得多,这表明当拍摄这张照片时,它的光圈没有完全打开。
尺寸
现在让我们讨论光圈背后的数学原理。光圈的大小用f值表示。它与光圈的开口成反比。
以下是两个最能解释这个概念的等式。
大光圈尺寸 = 小f值
小光圈尺寸 = 大f值
图示可以表示为
快门
在光圈之后,就是快门。当光线允许通过光圈时,它会直接照射到快门上。快门实际上是一个盖子,一个封闭的窗户,或者可以认为是一个窗帘。记住当我们谈论成像的CCD阵列传感器时。快门后面是传感器。因此,当光线通过光圈时,快门是成像和光线之间唯一的东西。
一旦快门打开,光线就会照射到图像传感器上,图像就会在阵列上形成。
效果
如果快门允许光线通过更长的时间,图像会更亮。类似地,当快门移动得很快时,会产生更暗的图片,因此允许通过的光线的光子很少,在CCD阵列传感器上形成的图像非常暗。
快门还有两个主要概念
快门速度
快门时间
快门速度
快门速度可以指快门打开或关闭的次数。请记住,我们不是在谈论快门打开或关闭多长时间。
快门时间
快门时间可以定义为
当快门打开时,它关闭前等待的时间称为快门时间。
在这种情况下,我们不讨论快门打开或关闭多少次,而是讨论它打开多长时间。
例如
我们可以通过这种方式更好地理解这两个概念。假设快门打开15次然后关闭,每次打开1秒然后关闭。在这个例子中,15是快门速度,1秒是快门时间。
关系
快门速度和快门时间之间的关系是它们彼此成反比。
这种关系可以在下面的等式中定义。
快门速度越快 = 快门时间越短
快门速度越慢 = 快门时间越长。
解释
所需时间越短,速度越快。所需时间越长,速度越慢。
应用
这两个概念共同构成了各种应用。其中一些如下所示。
快速移动的物体
如果你要捕捉快速移动物体的图像,可能是汽车或任何东西。快门速度及其时间的调整会产生很大影响。
因此,为了捕捉这样的图像,我们将进行两次修改
提高快门速度
缩短快门时间
发生的情况是,当我们提高快门速度时,快门打开或关闭的次数越多。这意味着不同的光线样本会被允许通过。当我们缩短快门时间时,这意味着我们将立即捕捉场景并关闭快门。
如果你这样做,你会得到一个快速移动物体的清晰图像。
为了理解这一点,我们将看看这个例子。假设你想捕捉快速移动的瀑布的图像。
你将快门速度设置为1秒,然后拍摄照片。这就是你得到的
然后你将快门速度设置为更快的速度,你得到。
然后再次将快门速度设置为更快,你得到。
你可以看到在最后一张图片中,我们将快门速度提高到非常快,这意味着快门在1秒的200分之一内打开或关闭,因此我们得到了一张清晰的图像。
ISO
ISO值用数字表示。它表示相机对光的灵敏度。如果ISO值降低,则表示我们的相机对光线不太敏感;如果ISO值较高,则表示它更敏感。
效果
ISO值越高,图片越亮。如果ISO设置为1600,图片会非常亮,反之亦然。
副作用
如果ISO增加,图像中的噪点也会增加。如今,大多数相机制造商都在努力在将ISO设置为更高速度时消除图像中的噪点。
像素的概念
像素
像素是图像中最小的元素。每个像素对应一个值。在8位灰度图像中,像素值介于0到255之间。任何一点的像素值对应于照射到该点的光子强度。每个像素存储一个与该特定位置的光强度成比例的值。
PEL
像素也称为PEL。你可以从下面给出的图片中更好地理解像素。
在上图中,可能有数千个像素共同构成这张图像。我们将放大图像,直到能够看到一些像素的划分。它显示在下面的图像中。
在上图中,可能有数千个像素共同构成这张图像。我们将放大图像,直到能够看到一些像素的划分。它显示在下面的图像中。
与CCD阵列的关系
我们已经看到了如何在CCD阵列中形成图像。因此,像素也可以定义为
CCD阵列中最小的划分也称为像素。
CCD阵列的每个划分都包含针对照射到它的光子强度的值。这个值也可以称为像素。
总像素数的计算
我们将图像定义为二维信号或矩阵。在这种情况下,像素 (PEL) 的数量等于行数乘以列数。
可以用下面的数学公式表示:
像素总数 = 行数 (X) 列数
或者我们可以说,(x,y) 坐标对的数量构成了像素总数。
在图像类型教程中,我们将更详细地讲解如何在彩色图像中计算像素。
灰度等级
任何一点的像素值表示该位置图像的强度,这也称为灰度等级。
在图像存储和每像素位数教程中,我们将更详细地了解像素值,但现在我们只关注单个像素值的概念。
像素值 (0)
正如本教程开头已经定义的那样,每个像素只能有一个值,每个值表示图像该点的光强度。
现在让我们来看一个非常独特的值 0。值 0 表示没有光。这意味着 0 表示黑色,进一步意味着当像素值为 0 时,该点将形成黑色。
让我们看看这个图像矩阵
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
现在这个图像矩阵全部填充为 0。所有像素的值均为 0。如果我们要计算这个矩阵中的像素总数,我们将这样做:
像素总数 = 行总数 X 列总数
= 3 X 3
= 9.
这意味着将生成一个包含 9 个像素的图像,该图像的尺寸为 3 行 3 列,最重要的是该图像将是黑色的。
生成的图像将类似于:
为什么这张图像是全黑的?因为图像中所有像素的值都是 0。
透视变换
当人眼看近处物体时,它们看起来比远处物体更大。这通常称为透视。而变换是指将物体等从一种状态转换到另一种状态。
因此,总的来说,透视变换处理的是将 3D 世界转换为 2D 图像。这与人眼的视觉原理以及摄像机的原理相同。
我们将详细解释为什么会发生这种情况,即靠近你的物体看起来更大,而远离你的物体看起来更小,即使当你靠近它们时它们看起来更大。
我们将从参考系的概念开始讨论。
参考系
参考系基本上是一组值,我们根据这些值来测量某些东西。
5 个参考系
为了分析 3D 世界/图像/场景,需要 5 个不同的参考系。
物体
世界
相机
图像
像素
物体坐标系
物体坐标系用于对物体建模。例如,检查特定物体相对于其他物体是否在正确的位置。它是一个 3D 坐标系。
世界坐标系
世界坐标系用于关联三维世界中的物体。它是一个 3D 坐标系。
相机坐标系
相机坐标系用于根据相机的位置关联物体。它是一个 3D 坐标系。
图像坐标系
它不是 3D 坐标系,而是一个 2D 系统。它用于描述如何在 2D 图像平面上映射 3D 点。
像素坐标系
它也是一个 2D 坐标系。每个像素都有像素坐标值。
这五个坐标系之间的变换
这就是 3D 场景如何转换为包含像素的 2D 图像。
现在我们将用数学方法解释这个概念。
其中Y = 3D 物体
y = 2D 图像
f = 相机的焦距
Z = 图像与相机之间的距离
在这个变换中形成了两个不同的角度,用 Q 表示。
第一个角度是:
其中负号表示图像被反转。形成的第二个角度是:
比较这两个等式,我们得到:
从这个等式中,我们可以看出,当光线从物体上反射回来后经过相机时,会形成一个倒立的图像。
我们可以通过这个例子更好地理解这一点。
例如
计算生成的图像大小
假设拍摄了一个身高 5 米的人的图像,该人距离相机 50 米,我们必须确定焦距为 50 毫米的相机拍摄的人的图像大小。
解答
由于焦距以毫米为单位,因此我们必须将所有单位转换为毫米才能进行计算。
所以:
Y = 5000 毫米。
f = 50 毫米。
Z = 50000 毫米。
将这些值代入公式,我们得到:
= -5 毫米。
同样,负号表示图像被反转。
每像素位数的概念
Bpp 或每像素位数表示每个像素的位数。图像中不同颜色的数量取决于颜色深度或每像素位数。
数学中的位
这就像玩二进制位一样。
一位可以表示多少个数?
0
1
可以组合出多少个两位组合?
00
01
10
11
如果我们设计一个公式来计算可以从位中组合出的总数,它将是这样的:
其中 bpp 表示每像素位数。在公式中输入 1,得到 2;输入 2,得到 4。它呈指数增长。
不同颜色的数量
正如我们在开头所说,不同颜色的数量取决于每像素位数。
下表列出了一些位数及其对应的颜色。
每像素位数 | 颜色数量 |
---|---|
1 bpp | 2 种颜色 |
2 bpp | 4 种颜色 |
3 bpp | 8 种颜色 |
4 bpp | 16 种颜色 |
5 bpp | 32 种颜色 |
6 bpp | 64 种颜色 |
7 bpp | 128 种颜色 |
8 bpp | 256 种颜色 |
10 bpp | 1024 种颜色 |
16 bpp | 65536 种颜色 |
24 bpp | 16777216 种颜色(1670 万种颜色) |
32 bpp | 4294967296 种颜色(42.94 亿种颜色) |
此表显示了不同的每像素位数及其包含的颜色数量。
色阶
你可以轻松注意到指数增长的模式。著名的灰度图像为 8 bpp,这意味着它包含 256 种不同的颜色或 256 个色阶。
色阶可以表示为:
彩色图像通常为 24 bpp 或 16 bpp 格式。
我们将在图像类型教程中详细了解其他颜色格式和图像类型。
颜色值
我们之前在像素概念教程中看到,0 像素值表示黑色。黑色
记住,0 像素值始终表示黑色。但是没有固定值表示白色。白色
表示白色的值可以计算为:
对于 1 bpp,0 表示黑色,1 表示白色。
对于 8 bpp,0 表示黑色,255 表示白色。
灰色
计算出黑色和白色值后,就可以计算出灰色的像素值。
灰色实际上是黑色和白色的中点。也就是说:
对于 8 bpp,表示灰色的像素值为 127 或 128 bpp(如果从 1 开始计数,而不是从 0 开始)。
图像存储要求
讨论了每像素位数之后,我们现在拥有计算图像大小所需的一切。
图像大小
图像的大小取决于三件事。
行数
列数
每像素位数
计算大小的公式如下所示:
图像大小 = 行数 * 列数 * bpp
这意味着如果你有一张图像,比如说这张:
假设它有 1024 行和 1024 列。由于它是灰度图像,它有 256 个不同的灰色阴影,或者说每像素位数为 8。将这些值代入公式,我们得到:
图像大小 = 行数 * 列数 * bpp
= 1024 * 1024 * 8
= 8388608 位。
但由于这不是我们识别的标准答案,因此我们将将其转换为我们的格式。
转换为字节 = 8388608 / 8 = 1048576 字节。
转换为千字节 = 1048576 / 1024 = 1024 KB。
转换为兆字节 = 1024 / 1024 = 1 MB。
这就是图像大小的计算和存储方式。现在在公式中,如果给出图像的大小和每像素位数,你还可以计算图像的行数和列数,前提是图像为正方形(行数和列数相同)。
图像类型
图像类型有很多,我们将详细了解不同类型的图像及其颜色分布。
二值图像
顾名思义,二值图像只包含两个像素值。
0 和 1。
在我们之前的每像素位数教程中,我们已经详细解释了像素值与其对应颜色的表示。
这里 0 指的是黑色,1 指的是白色。它也称为单色。
黑白图像
因此,生成的图像只包含黑色和白色,因此也可以称为黑白图像。
没有灰度等级
这张二值图像的一个有趣之处在于它没有灰度等级。它只有两种颜色:黑色和白色。
格式
二值图像的格式为PBM(便携式位图)。
2、3、4、5、6位颜色格式
目前2、3、4、5和6位颜色格式的图像已不再广泛使用。它们过去用于旧式电视显示器或监控器显示器。
但这些颜色格式每种都包含两种以上的灰度等级,因此与二值图像不同,它们具有灰度。
2位有4种颜色,3位有8种颜色,4位有16种颜色,5位有32种颜色,6位有64种颜色。
8位颜色格式
8位颜色格式是最著名的图像格式之一。它包含256种不同的颜色阴影,通常称为灰度图像。
8位颜色范围从0到255。其中0代表黑色,255代表白色,127代表灰色。
此格式最初由早期版本的UNIX操作系统和早期彩色Macintosh电脑使用。
爱因斯坦的灰度图像如下所示
格式
这些图像的格式为PGM(便携式灰度图)。
Windows系统默认不支持此格式。要查看灰度图像,您需要使用图像查看器或图像处理工具箱,例如Matlab。
灰度图像背后的原理
正如我们在之前的教程中多次解释的那样,图像不过是一个二维函数,可以用二维数组或矩阵来表示。因此,对于上面显示的爱因斯坦图像,其背后将是一个值范围在0到255之间的二维矩阵。
但彩色图像并非如此。
16位颜色格式
这是一种彩色图像格式,包含65,536种不同的颜色,也称为高色彩格式。
它已被微软在其支持8位以上颜色格式的系统中使用。现在,这种16位格式和我们将要讨论的下一个格式(24位格式)都是彩色格式。
彩色图像中的颜色分布不像灰度图像那样简单。
16位格式实际上细分为三种格式:红色、绿色和蓝色,也就是著名的RGB格式。
下图以图示的方式表示。
现在问题出现了,如何将16位分配给三种颜色?如果这样做:
红色5位,绿色5位,蓝色5位
那么最后会剩下1位。
因此,16位的分配方式如下:
红色5位,绿色6位,蓝色5位。
剩余的1位被添加到绿色位中,因为在三种颜色中,绿色对眼睛最舒适。
请注意,并非所有系统都遵循这种分配方式。有些系统在16位中引入了alpha通道。
16位格式的另一种分配方式如下:
红色4位,绿色4位,蓝色4位,alpha通道4位。
或者有些系统这样分配:
红色5位,绿色5位,蓝色5位,alpha通道1位。
24位颜色格式
24位颜色格式也称为真彩色格式。与16位颜色格式一样,在24位颜色格式中,24位再次分配给红色、绿色和蓝色的三种不同格式。
由于24可以被8整除,因此它被平均分配到三个不同的颜色通道。
它们的分配方式如下:
红色8位,绿色8位,蓝色8位。
24位图像背后的原理
与只有一个矩阵的8位灰度图像不同,24位图像有三个不同的矩阵:红色、绿色和蓝色。
格式
这是最常用的格式。其格式为PPM(便携式像素图),Linux操作系统支持该格式。著名的Windows系统有其自身的格式,即BMP(位图)。
颜色代码转换
在本教程中,我们将了解如何组合不同的颜色代码来创建其他颜色,以及如何将RGB颜色代码转换为十六进制代码,反之亦然。
不同的颜色代码
这里的所有颜色都是24位格式,这意味着每种颜色都包含8位的红色、8位的绿色和8位的蓝色。或者我们可以说每种颜色都有三个不同的部分。您只需更改这三个部分的数量即可创建任何颜色。
二值颜色格式
颜色:黑色
图像
十进制代码
(0,0,0)
解释
正如在之前的教程中解释的那样,在8位格式中,0代表黑色。因此,如果要创建纯黑色,则必须将R、G、B三个部分都设置为0。
颜色:白色
图像
十进制代码
(255,255,255)
解释
由于R、G、B的每个部分都是8位部分,所以在8位中,白色由255形成。这在像素教程中有所解释。因此,为了创建白色,我们将每个部分设置为255,这就是我们获得白色的方式。通过将每个值设置为255,我们得到总值为255,这使颜色变为白色。
RGB颜色模型
颜色:红色
图像
十进制代码
(255,0,0)
解释
由于我们只需要红色,因此我们将绿色和蓝色的其余两个部分清零,并将红色部分设置为其最大值255。
颜色:绿色
图像
十进制代码
(0,255,0)
解释
由于我们只需要绿色,因此我们将红色和蓝色的其余两个部分清零,并将绿色部分设置为其最大值255。
颜色:蓝色
图像
十进制代码
(0,0,255)
解释
由于我们只需要蓝色,因此我们将红色和绿色的其余两个部分清零,并将蓝色部分设置为其最大值255。
灰色
颜色:灰色
图像
十进制代码
(128,128,128)
解释
正如我们在像素教程中已经定义的那样,灰色实际上是中点。在8位格式中,中点是128或127。在本例中,我们选择128。因此,我们将每个部分设置为其中点128,这导致总中值,我们得到灰色。
CMYK颜色模型
CMYK是另一种颜色模型,其中c代表青色,m代表品红色,y代表黄色,k代表黑色。CMYK模型通常用于彩色打印机,其中使用两种颜色墨盒。一种包含CMY,另一种包含黑色。
CMY颜色也可以通过更改红色、绿色和蓝色的数量或部分来创建。
颜色:青色
图像
十进制代码
(0,255,255)
解释
青色是由绿色和蓝色两种不同颜色的组合形成的。因此,我们将这两者设置为最大值,并将红色的部分清零。然后我们得到青色。
颜色:品红色
图像
十进制代码
(255,0,255)
解释
品红色是由红色和蓝色两种不同颜色的组合形成的。因此,我们将这两者设置为最大值,并将绿色的部分清零。然后我们得到品红色。
颜色:黄色
图像
十进制代码
(255,255,0)
解释
黄色是由红色和绿色两种不同颜色的组合形成的。因此,我们将这两者设置为最大值,并将蓝色的部分清零。然后我们得到黄色。
转换
现在我们将了解颜色是如何从一种格式转换为另一种格式的。
从RGB转换为十六进制代码
从十六进制转换为RGB的方法如下:
选择一种颜色。例如:白色 = (255, 255, 255)。
取第一个部分,例如255。
将其除以16。如下所示:
取下面两行数字,即商和余数。在本例中,它是15 ÷ 15,即FF。
对接下来的两个部分重复步骤2。
将所有十六进制代码组合成一个。
答案:#FFFFFF
从十六进制转换为RGB
从十六进制代码转换为RGB十进制格式的方法如下:
取一个十六进制数。例如:#FFFFFF
将其分成三部分:FF FF FF
取第一部分并将其组件分开:F F
分别将每个部分转换为二进制:(1111)(1111)
现在将各个二进制数组合成一个:11111111
将此二进制数转换为十进制:255
现在重复步骤2两次。
第一步得到的值是R,第二步是G,第三步是B。
答案:(255,255,255)
下表列出了常见的颜色及其十六进制代码。
颜色 | 十六进制代码 |
---|---|
黑色 | #000000 |
白色 | #FFFFFF |
灰色 | #808080 |
红色 | #FF0000 |
绿色 | #00FF00 |
蓝色 | #0000FF |
青色 | #00FFFF |
品红色 | #FF00FF |
黄色 | #FFFF00 |
灰度到RGB转换
我们在图像类型教程中已经定义了RGB颜色模型和灰度格式。现在我们将彩色图像转换为灰度图像。转换方法有两种,各有优缺点。这两种方法是:平均法
加权法或亮度法
平均法
平均法是最简单的方法。您只需取三种颜色的平均值即可。由于它是RGB图像,因此这意味着您需要将r与g与b相加,然后除以3才能得到所需的灰度图像。
方法如下:
灰度 = (R + G + B) / 3
例如
如果您有一个如上所示的彩色图像,并且想要使用平均法将其转换为灰度图像,则将出现以下结果。
解释
有一点需要注意,原始作品会发生一些变化。这意味着我们的平均法有效。但结果并不理想。我们想将图像转换为灰度图像,但这却变成了一个相当黑的图像。
问题
这个问题的出现是由于我们取了三种颜色的平均值。由于三种不同的颜色具有三种不同的波长,并且对图像的形成有各自的贡献,因此我们必须根据它们的贡献来取平均值,而不是使用平均法进行平均。我们现在所做的是:
红色33%,绿色33%,蓝色33%
我们取每种颜色的33%,这意味着每个部分对图像的贡献相同。但实际上并非如此。亮度法给出了这个问题的解决方案。
加权法或亮度法
您已经看到了平均法中出现的问题。加权法解决了这个问题。由于红色在三种颜色中波长最长,绿色不仅波长比红色短,而且绿色也是对眼睛最舒适的颜色。
这意味着我们必须减少红色的贡献,增加绿色的贡献,并将蓝色的贡献放在这两者之间。
因此,形成的新公式是
新的灰度图像 = ((0.3 * R) + (0.59 * G) + (0.11 * B))。
根据这个公式,红色贡献了30%,绿色贡献了59%,在三种颜色中占比最大,蓝色贡献了11%。
将此公式应用于图像,我们得到:
原始图像
灰度图像
解释
正如你在这里看到的,图像现在已经使用加权方法正确地转换为灰度图像。与平均值方法的结果相比,这张图像更明亮。
采样的概念
模拟信号到数字信号的转换
大多数图像传感器的输出是模拟信号,我们无法对其进行数字处理,因为我们无法存储它。我们无法存储它,因为存储一个可以具有无限值的信号需要无限的内存。
因此,我们必须将模拟信号转换为数字信号。
为了创建数字图像,我们需要将连续数据转换为数字形式。这可以通过两个步骤完成。
采样
量化
我们现在将讨论采样,量化将在稍后讨论,但现在我们将简要讨论这两个步骤之间的区别以及这两个步骤的必要性。
基本思想
将模拟信号转换为数字信号的基本思想是:
将它的两个坐标轴 (x,y) 都转换为数字格式。
由于图像不仅在其坐标(x轴)上是连续的,而且在其幅度(y轴)上也是连续的,因此处理坐标数字化的那部分称为采样。处理幅度数字化的那部分称为量化。
采样。
在我们的信号与系统入门教程中已经介绍了采样。但我们在这里将更深入地讨论。
这是我们讨论的采样内容。
采样这个术语指的是获取样本
我们在采样中对x轴进行数字化
它是在自变量上进行的
在方程式 y = sin(x) 中,它是在 x 变量上进行的
它进一步分为两部分:上采样和下采样
如果你观察上图,你会看到信号中有一些随机变化。这些变化是由于噪声造成的。在采样中,我们通过采集样本来减少这种噪声。很明显,我们采集的样本越多,图像质量越好,噪声去除得越多,反之亦然。
然而,如果你只对x轴进行采样,信号不会转换为数字格式,除非你也对y轴进行采样,这称为量化。更多的样本最终意味着你收集了更多的数据,在图像的情况下,这意味着更多的像素。
与像素的关系
由于像素是图像中最小的元素。图像中的像素总数可以计算为:
像素 = 行总数 * 列总数。
假设我们共有25个像素,这意味着我们有一个5 X 5的正方形图像。然后,正如我们在采样中讨论的那样,更多的样本最终会导致更多的像素。这意味着我们对连续信号的x轴进行了25次采样。这指的是这张图像的25个像素。
这导致了另一个结论,即由于像素也是CCD阵列的最小划分。所以这意味着它也与CCD阵列有关,可以解释为:
与CCD阵列的关系
CCD阵列上的传感器数量直接等于像素数量。由于我们已经得出像素数量直接等于样本数量的结论,这意味着样本数量直接等于CCD阵列上的传感器数量。
过采样。
我们一开始就定义了采样进一步分为两种类型。即上采样和下采样。上采样也称为过采样。
过采样在图像处理中有着非常广泛的应用,即缩放。
缩放
我们将在接下来的教程中正式介绍缩放,但现在,我们只简要解释一下缩放。
缩放是指增加像素数量,这样当您缩放图像时,您将看到更多细节。
像素数量的增加是通过过采样完成的。缩放的一种方法,或增加样本的方法,是通过镜头机械运动进行光学缩放,然后捕捉图像。但是我们必须在图像被捕捉后才能这样做。
缩放和采样之间存在差异。
概念相同,即增加样本。但关键区别在于,采样是在信号上进行的,而缩放是在数字图像上进行的。
像素分辨率
在我们定义像素分辨率之前,有必要定义像素。
像素
我们已经在我们的像素概念教程中定义了像素,其中我们将像素定义为图像的最小元素。我们还定义了像素可以存储与该特定位置的光强度成比例的值。
现在我们已经定义了像素,我们将定义什么是分辨率。
分辨率
分辨率可以用多种方式定义。例如像素分辨率、空间分辨率、时间分辨率、光谱分辨率。我们将讨论像素分辨率。
你可能在自己的电脑设置中看到过,你的显示器分辨率是 800 x 600、640 x 480 等。
在像素分辨率中,分辨率一词指的是数字图像中像素的总数。例如,如果一张图像有 M 行和 N 列,那么它的分辨率可以定义为 M X N。
如果我们将分辨率定义为像素总数,那么像素分辨率可以用一组两个数字来定义。第一个数字是图片的宽度,或列上的像素数,第二个数字是图片的高度,或其宽度上的像素数。
我们可以说,像素分辨率越高,图像质量越高。
我们可以将图像的像素分辨率定义为 4500 X 5500。
百万像素
我们可以使用像素分辨率计算相机的百万像素。
列像素(宽度) X 行像素(高度)/ 100万。
图像的大小可以用其像素分辨率来定义。
大小 = 像素分辨率 X bpp(每像素位数)
计算相机的百万像素
假设我们有一张尺寸为 2500 X 3192 的图像。
它的像素分辨率 = 2500 * 3192 = 7982350 字节。
除以 100万 = 7.9 = 8 百万像素(大约)。
纵横比
另一个与像素分辨率相关的重要的概念是纵横比。
纵横比是图像宽度与图像高度的比率。它通常表示为两个用冒号分隔的数字 (8:9)。这个比率在不同的图像和不同的屏幕上有所不同。常见的纵横比有:
1.33:1、1.37:1、1.43:1、1.50:1、1.56:1、1.66:1、1.75:1、1.78:1、1.85:1、2.00:1 等
优点
纵横比保持了图像在屏幕上外观的平衡,这意味着它保持了水平和垂直像素之间的比率。当纵横比增加时,它不会使图像失真。
例如
这是一张示例图像,它有 100 行和 100 列。如果我们希望把它缩小,并且条件是质量保持不变,或者换句话说,图像不会失真,这就是它的实现方式。
原始图像
在 MS Paint 中保持纵横比来更改行和列。
结果
较小的图像,但具有相同的平衡。
你可能在视频播放器中看到过纵横比,你可以在其中根据你的屏幕分辨率调整视频。
从纵横比中查找图像的尺寸
纵横比告诉我们很多信息。有了纵横比,你就可以计算图像的尺寸以及图像的大小。
例如
如果给定一个纵横比为 6:2、像素分辨率为 480000 像素的灰度图像。
并且要求你计算两件事。
分解像素分辨率以计算图像的尺寸
计算图像的大小
解答
已知
纵横比:c:r = 6:2
像素分辨率:c * r = 480000
每像素位数:灰度图像 = 8bpp
求
行数 = ?
列数 = ?
求解第一部分
求解第二部分
大小 = 行数 * 列数 * bpp
图像大小(位)= 400 * 1200 * 8 = 3840000 位
图像大小(字节)= 480000 字节
图像大小(千字节)= 48 KB(大约)。
缩放的概念
在本教程中,我们将介绍缩放的概念以及用于缩放图像的常用技术。
缩放
缩放简单来说就是放大图片,使图像中的细节变得更清晰可见。缩放图像有很多广泛的应用,从通过相机镜头缩放,到在互联网上缩放图像等等。
例如
被缩放
你可以分两个步骤进行缩放。
第一步包括在拍摄特定图像之前进行缩放。这被称为预处理缩放。这种缩放涉及硬件和机械运动。
第二步是在图像被捕捉后进行缩放。它是通过许多不同的算法完成的,在这些算法中,我们操纵像素以放大所需的部分。
我们将在下一个教程中详细讨论它们。
光学变焦与数字变焦
这两种类型的变焦都受相机的支持。
光学变焦
光学变焦是通过移动相机镜头来实现的。光学变焦实际上是真正的变焦。光学变焦的结果远优于数字变焦。在光学变焦中,图像通过镜头放大,使得图像中的物体看起来更靠近相机。在光学变焦中,镜头会物理扩展以缩放或放大物体。
数字变焦
数码变焦实际上是相机内部的图像处理过程。数码变焦时,图像中心被放大,图像边缘被裁切。由于中心被放大,看起来物体离你更近了。
数码变焦时,像素会被扩展,从而导致图像质量下降。
使用图像处理工具/软件(例如Photoshop)通过电脑处理图像后,也能看到同样的数码变焦效果。
下图是通过以下变焦方法中的一种实现数码变焦的结果。
现在,由于我们正在学习数字图像处理,我们将不会关注如何使用镜头或其他工具进行光学图像变焦。相反,我们将重点关注能够放大数字图像的方法。
变焦方法
虽然有很多方法可以做到这一点,但我们在这里将讨论其中最常用的几种。
它们列在下面。
像素复制或(最近邻插值)
零阶保持法
K倍变焦
这三种方法将在下一个教程中正式介绍。
变焦方法
在本教程中,我们将正式介绍在“变焦简介”教程中介绍的三种变焦方法。
方法
像素复制或(最近邻插值)
零阶保持法
K倍变焦
每种方法都有其自身的优缺点。我们将首先讨论像素复制。
方法一:像素复制
导论
它也称为最近邻插值。顾名思义,在这种方法中,我们只是复制相邻像素。正如我们在采样教程中已经讨论过的那样,变焦只不过是增加了样本或像素的数量。该算法的工作原理相同。
工作原理
在这种方法中,我们根据已给定的像素创建新的像素。此方法中每个像素在行和列方向上都复制n次,即可得到放大的图像。就这么简单。
例如
如果你有一个2行2列的图像,并且你想使用像素复制将其放大两倍或两倍,这就是方法。
为了更好地理解,图像以矩阵的形式给出,其中包含图像的像素值。
1 | 2 |
3 | 4 |
上图有两行两列,我们首先将其按行放大。
按行放大
当我们按行放大时,我们只需简单地将行的像素复制到其相邻的新单元格。
方法如下。
1 | 1 | 2 | 2 |
3 | 3 | 4 | 4 |
你可以看到,在上图矩阵中,每个像素在行中都被复制了两次。
按列放大
下一步是按列复制每个像素,我们将简单地将列像素复制到其相邻的新列或其下方。
方法如下。
1 | 1 | 2 | 2 |
1 | 1 | 2 | 2 |
3 | 3 | 4 | 4 |
3 | 3 | 4 | 4 |
新图像大小
从上面的例子可以看出,一个原始图像为2行2列,放大后变成了4行4列。这意味着新图像的尺寸为
(原始图像行数 * 放大倍数,原始图像列数 * 放大倍数)
优点和缺点
这种变焦技术的优点之一是它非常简单。你只需要复制像素,无需其他操作。
这种技术的缺点是图像被放大,但输出结果非常模糊。随着放大倍数的增加,图像变得越来越模糊,最终会变成完全模糊的图像。
方法二:零阶保持法
导论
零阶保持法是另一种变焦方法。它也称为两倍变焦,因为它只能放大两倍。我们将在下面的例子中看到原因。
工作原理
在零阶保持法中,我们分别从行中选择两个相邻元素,然后将它们相加,并将结果除以二,并将结果放在这两个元素之间。我们首先按行进行此操作,然后按列进行此操作。
例如
让我们取一个尺寸为2行2列的图像,并使用零阶保持法将其放大两倍。
1 | 2 |
3 | 4 |
我们首先按行放大,然后按列放大。
按行放大
1 | 1 | 2 |
3 | 3 | 4 |
我们取前两个数字:(2 + 1) = 3,然后除以2,得到1.5,近似为1。第2行采用相同的方法。
按列放大
1 | 1 | 2 |
2 | 2 | 3 |
3 | 3 | 4 |
我们取两个相邻的列像素值1和3。我们将它们相加得到4。然后将4除以2,得到2,将其放在它们之间。所有列都采用相同的方法。
新图像大小
你可以看到新图像的尺寸为3 x 3,而原始图像的尺寸为2 x 2。这意味着新图像的尺寸基于以下公式
(2(行数)- 1)X(2(列数)- 1)
优点和缺点。
这种变焦技术的优点之一是,它不会像最近邻插值法那样产生模糊的图像。但它也有一个缺点,即它只能作用于2的幂次方。这里可以证明这一点。
两倍变焦的原因
考虑上面2行2列的图像。如果我们必须使用零阶保持法将其放大6倍,我们就无法做到。公式向我们展示了这一点。
它只能放大2的幂次方:2、4、8、16、32,依此类推。
即使你尝试放大它,你也做不到。因为当你第一次将其放大两倍时,结果将与按列放大时相同,尺寸为3x3。然后你再次放大它,你将得到尺寸为5 x 5的结果。现在如果你再次这样做,你将得到尺寸为9 x 9的结果。
而根据你的公式,答案应该是11x11。(6(2) - 1)X(6(2) - 1)得到11 x 11。
方法三:K倍变焦
导论
K倍变焦是我们将要讨论的第三种变焦方法。它是迄今为止讨论的最完美的变焦算法之一。它解决了双倍变焦和像素复制的挑战。在这个变焦算法中,K代表放大倍数。
工作原理
它的工作方式如下。
首先,你必须像在两倍变焦中那样取两个相邻像素。然后你必须从较大的像素中减去较小的像素。我们称此输出为(OP)。
将输出(OP)除以放大倍数(K)。现在你必须将结果添加到较小的值中,并将结果放在这两个值之间。
再次将值OP添加到你刚刚放置的值中,并将其再次放置在上一个放置的值旁边。你必须一直这样做,直到放置k-1个值。
对所有行和列重复相同的步骤,你将得到一个放大的图像。
例如
假设你有一个2行3列的图像,如下所示。你必须将其放大三倍或三倍。
15 | 30 | 15 |
30 | 15 | 30 |
在这种情况下,K为3。K = 3。
应插入的值的数量为k-1 = 3-1 = 2。
按行放大
取前两个相邻像素,它们是15和30。
从30中减去15。30-15 = 15。
将15除以k。15/k = 15/3 = 5。我们称其为OP。(其中op只是一个名称)
将OP添加到较小的数字中。15 + OP = 15 + 5 = 20。
再次将OP添加到20中。20 + OP = 20 + 5 = 25。
我们这样做2次,因为我们必须插入k-1个值。
现在对接下来的两个相邻像素重复此步骤。它显示在第一个表中。
插入值后,你必须按升序对插入的值进行排序,以便它们之间保持对称性。
它显示在第二个表中
表1。
15 | 20 | 25 | 30 | 20 | 25 | 15 |
30 | 20 | 25 | 15 | 20 | 25 | 30 |
表2。
按列放大
必须按列执行相同的过程。该过程包括取两个相邻像素值,然后从较大的值中减去较小的值。然后,你必须将其除以k。将结果存储为OP。将OP添加到较小的值中,然后再次将OP添加到第一次添加OP的值中。插入新值。
经过所有这些操作后,你得到了什么。
15 | 20 | 25 | 30 | 25 | 20 | 15 |
20 | 21 | 21 | 25 | 21 | 21 | 20 |
25 | 22 | 22 | 20 | 22 | 22 | 25 |
30 | 25 | 20 | 15 | 20 | 25 | 30 |
新图像大小
计算新图像尺寸的最佳方法是比较原始图像和最终图像的尺寸。原始图像的尺寸为2 X 3。新图像的尺寸为4 x 7。
因此,公式为
(K(行数- 1)+ 1)X(K(列数- 1)+ 1)
优点和缺点
K倍变焦算法的一个明显的优点是它能够计算任何倍数的缩放,这是像素复制算法的优势,它也提供了改进的结果(更清晰),这是零阶保持法的优势。因此,它结合了这两种算法的优势。
这种算法唯一的困难在于它最终必须进行排序,这是一个额外的步骤,因此增加了计算成本。
空间分辨率
图像分辨率
图像分辨率可以用多种方式定义。其中一种是像素分辨率,这在像素分辨率和纵横比的教程中已经讨论过。
在本教程中,我们将定义另一种类型的分辨率,即空间分辨率。
空间分辨率
空间分辨率指出,图像的清晰度不能仅由像素分辨率决定。图像中的像素数量并不重要。
空间分辨率可以定义为
图像中最小的可辨细节。(数字图像处理 - Gonzalez,Woods - 第二版)
或者我们可以将空间分辨率定义为每英寸的独立像素值数量。
简而言之,空间分辨率指的是我们不能比较两种不同类型的图像来判断哪一个清晰或哪一个不清晰。如果我们必须比较两张图像以查看哪一张更清晰或哪一张具有更高的空间分辨率,我们必须比较两张相同大小的图像。
例如
你不能比较这两张图像来查看图像的清晰度。
虽然两张图片都是同一个人,但这并非我们判断的条件。左侧图片是爱因斯坦的缩略图,尺寸为 227 x 222 像素。而右侧图片尺寸为 980 x 749 像素,并且是放大的图像。我们无法比较这两张图片哪一张更清晰。请记住,缩放比例在此条件下并不重要,唯一重要的是这两张图片并不相同。
因此,为了测量空间分辨率,下面的图片可以达到目的。
现在您可以比较这两张图片了。两张图片的尺寸相同,均为 227 x 222 像素。比较后,您会发现左侧图片的空间分辨率更高,或者说比右侧图片更清晰。这是因为右侧图片是一张模糊的图像。
测量空间分辨率
由于空间分辨率指的是清晰度,因此对于不同的设备,已经制定了不同的测量方法。
例如
每英寸点数 (Dots Per Inch)
每英寸线数 (Lines Per Inch)
每英寸像素数 (Pixels Per Inch)
这些将在下一个教程中详细讨论,这里仅作简要介绍。
每英寸点数 (Dots Per Inch)
每英寸点数 (DPI) 通常用于显示器。
每英寸线数 (Lines Per Inch)
每英寸线数 (LPI) 通常用于激光打印机。
每英寸像素数
每英寸像素数 (PPI) 是用于平板电脑、手机等不同设备的测量单位。
每英寸像素、点数和线数
在上一个关于空间分辨率的教程中,我们简要介绍了 PPI、DPI 和 LPI。现在我们将正式讨论它们。
每英寸像素数。
像素密度或每英寸像素数是用于包括平板电脑和手机在内的不同设备的空间分辨率的衡量标准。
PPI 越高,质量越高。为了更好地理解它是如何计算的,让我们计算一下一部手机的 PPI。
计算三星 Galaxy S4 的每英寸像素数 (PPI)
三星 Galaxy S4 的 PPI 或像素密度为 441。但它是如何计算的呢?
首先,我们将使用勾股定理来计算像素中的对角线分辨率。
它可以表示为
其中 a 和 b 是以像素为单位的高度和宽度分辨率,c 是以像素为单位的对角线分辨率。
对于三星 Galaxy S4,其分辨率为 1080 x 1920 像素。
因此,将这些值代入方程得到结果
C = 2202.90717
现在我们将计算 PPI
PPI = c / 以英寸为单位的对角线尺寸
三星 Galaxy S4 的对角线尺寸为 5.0 英寸,这可以在任何地方得到确认。
PPI = 2202.90717 / 5.0
PPI = 440.58
PPI ≈ 441
这意味着三星 Galaxy S4 的像素密度为 441 PPI。
每英寸点数。
DPI 通常与 PPI 相关,但两者之间存在差异。DPI 或每英寸点数是打印机空间分辨率的衡量标准。对于打印机而言,DPI 表示在打印机打印图像时,每英寸打印多少墨点。
请记住,并非每个像素都由一个墨点打印。打印一个像素可能需要多个墨点。其原因是大多数彩色打印机使用 CMYK 模型。颜色是有限的。打印机必须从这些颜色中选择来构成像素的颜色,而在电脑中,您拥有成千上万种颜色。
打印机的 DPI 越高,打印到纸张上的文档或图像的质量越高。
通常,一些激光打印机的 DPI 为 300,而有些则为 600 或更高。
每英寸线数。
当 DPI 指的是每英寸点数时,每英寸线数指的是每英寸的点线数。半色调网点的分辨率以每英寸线数来衡量。
下表显示了一些打印机的每英寸线数容量。
打印机 | LPI |
---|---|
丝网印刷 | 45-65 lpi |
激光打印机 (300 dpi) | 65 lpi |
激光打印机 (600 dpi) | 85-105 lpi |
胶印机 (新闻纸) | 85 lpi |
胶印机 (铜版纸) | 85-185 lpi |
灰度分辨率
图像分辨率
分辨率可以定义为图像中像素的总数。这在图像分辨率中已经讨论过。我们还讨论过,图像的清晰度并不取决于像素的数量,而是取决于图像的空间分辨率。这在空间分辨率中已经讨论过。在这里,我们将讨论另一种类型的分辨率,称为灰度分辨率。灰度分辨率
灰度分辨率指的是图像中阴影或灰度等级的可预测或确定性变化。
简而言之,灰度分辨率等于每像素位数。
我们已经在每像素位数和图像存储需求教程中讨论过每像素位数。我们将在此处简要定义 BPP。
BPP
图像中不同颜色的数量取决于颜色深度或每像素位数。
数学上
灰度分辨率和每像素位数之间可以建立的数学关系可以表示为。
在这个等式中,L 指的是灰度级数。它也可以定义为灰度阴影。而 k 指的是 BPP 或每像素位数。因此,2 的每像素位数次方等于灰度分辨率。
例如
上面爱因斯坦的图片是灰度图像。这意味着它是一张每像素 8 位或 8bpp 的图像。
现在如果要计算灰度分辨率,我们将这样计算。
这意味着它的灰度分辨率是 256。或者换句话说,这张图片有 256 种不同的灰度阴影。
图像的每像素位数越多,其灰度分辨率越高。
根据 BPP 定义灰度分辨率
灰度分辨率不必仅以灰度级来定义。我们也可以用每像素位数来定义它。
例如
如果给您一张 4 bpp 的图像,并要求您计算其灰度分辨率。这个问题有两个答案。
第一个答案是 16 个级别。
第二个答案是 4 位。
从灰度分辨率中查找 BPP
您也可以从给定的灰度分辨率中找到每像素位数。为此,我们只需要稍微修改一下公式。
公式 1。
这个公式用于查找级别数。现在如果我们要查找每像素位数,也就是 k,我们将简单地将其更改为:
K = log₂(L) 公式 (2)
因为在第一个公式中,级别 (L) 和每像素位数 (k) 之间的关系是指数关系。现在我们必须将其反转,因此指数的反转是 log。
让我们举个例子,从灰度分辨率中找到每像素位数。
例如
如果给您一张 256 个级别的图像。所需的每像素位数是多少?
将 256 代入方程,我们得到:
K = log₂(256)
K = 8。
所以答案是每像素 8 位。
灰度分辨率和量化
量化将在下一个教程中正式介绍,但这里我们只解释灰度分辨率和量化之间的关系。
灰度分辨率位于信号的 y 轴上。在信号与系统导论教程中,我们学习到将模拟信号数字化需要两个步骤:采样和量化。
采样在 x 轴上进行。量化在 y 轴上进行。
这意味着图像灰度分辨率的数字化是在量化中完成的。
量化概念
我们在信号与系统教程中介绍了量化。我们将在此教程中正式将其与数字图像联系起来。让我们先稍微讨论一下量化。
信号数字化。
正如我们在之前的教程中看到的,将模拟信号数字化为数字信号需要两个基本步骤:采样和量化。采样在 x 轴上进行。它是将 x 轴(无限值)转换为数字值的过程。
下图显示了信号采样。
与数字图像相关的采样
采样的概念与缩放直接相关。采样的样本越多,获得的像素就越多。过采样也可以称为缩放。这已在采样和缩放教程中讨论过。
但是,信号数字化的过程并不仅限于采样,还涉及另一个步骤,即量化。
什么是量化?
量化与采样相反。它在 y 轴上进行。当您对图像进行量化时,实际上是将信号划分为量子(分区)。
在信号的 x 轴上是坐标值,在 y 轴上是幅度。因此,对幅度的数字化称为量化。
它是这样完成的
您可以在此图像中看到,信号已被量化为三个不同的级别。这意味着当我们对图像进行采样时,我们实际上会收集大量的值,在量化中,我们将为这些值设置级别。在下图中可以更清楚地看到这一点。
在上图采样中显示的图中,虽然已经进行了采样,但它们在垂直方向上仍然跨越一个连续的灰度值范围。在上图中,这些垂直范围的值已被量化为 5 个不同的级别或分区。从 0 黑色到 4 白色。这个级别可以根据您想要的图像类型而变化。
量化与灰度级之间的关系将在下面进一步讨论。
量化与灰度分辨率的关系
上图所示的量化图像具有 5 个不同的灰度级别。这意味着由该信号形成的图像将只有 5 种不同的颜色。它或多或少会是一张黑白图像,带有一些灰色。现在,如果您想提高图像质量,您可以这样做:增加级别或灰度级分辨率。如果将此级别增加到 256,则表示您拥有灰度图像,这比简单的黑白图像要好得多。
现在,256、5 或您选择的任何级别都称为灰度级。请记住我们在上一教程中讨论过的灰度级分辨率公式:
我们已经讨论过,灰度级可以用两种方式定义。这两种方式是:
灰度级 = 每像素比特数 (BPP)。(公式中的 k)
灰度级 = 每像素级别数。
在这种情况下,灰度级等于 256。如果要计算比特数,只需将值代入公式即可。对于 256 个级别,我们有 256 种不同的灰色阴影和每像素 8 位,因此图像将是灰度图像。
降低灰度级
现在我们将降低图像的灰度级以查看对图像的影响。
例如
假设您有一张 8bpp 的图像,它有 256 个不同的级别。它是一张灰度图像,图像看起来像这样。
256 个灰度级
现在我们将开始降低灰度级。我们首先将灰度级从 256 降低到 128。
128 个灰度级
将灰度级降低一半后,图像几乎没有影响。让我们再降低一些。
64 个灰度级
仍然影响不大,那么让我们进一步降低级别。
32 个灰度级
令人惊讶的是,仍然有一些细微的影响。可能是因为这是爱因斯坦的照片,但让我们进一步降低级别。
16 个灰度级
在这里,图像最终显示出受到级别影响。
8 个灰度级
4 个灰度级
现在,在将其进一步降低到 2 个级别之前,您可以很容易地看到图像由于降低灰度级而严重失真。现在我们将将其降低到 2 个级别,这只不过是一个简单的黑白级别。这意味着图像将是简单的黑白图像。
2 个灰度级
这是我们可以达到的最后一个级别,因为如果进一步降低,它将只是一张黑色图像,无法解释。
轮廓
这里有一个有趣的观察结果,那就是当我们减少灰度级数时,图像中开始出现一种特殊类型的效果,这在 16 灰度级图像中可以清楚地看到。这种效应被称为轮廓。
等偏好曲线
这种效应出现的原因在于等偏好曲线。它们将在我们下一节关于轮廓和等偏好曲线的教程中讨论。
等偏好曲线
什么是轮廓?
当我们减少图像中的灰度级数时,图像上会开始出现一些假颜色或边缘。这在我们上一节关于量化的教程中已经显示过。
让我们来看一下。
假设我们有一张 8bpp 的图像(灰度图像),具有 256 种不同的灰色阴影或灰度级。
上图有 256 种不同的灰色阴影。现在,当我们将其减少到 128,然后进一步减少到 64 时,图像或多或少相同。但是,当我们进一步将其减少到 32 个不同的级别时,我们得到了这样的图片
如果您仔细观察,您会发现图像上开始出现这种效果。当我们进一步将其减少到 16 个级别时,这些效果更加明显,我们得到了这样的图像。
这些开始出现在图像上的线条被称为轮廓,在上图中非常明显。
轮廓的增加和减少
随着我们减少灰度级数,轮廓效应增加;随着我们增加灰度级数,轮廓效应减少。两者是反比关系。
与
这意味着更多的量化将导致更多的轮廓,反之亦然。但这总是这样吗?答案是否定的。这取决于下面讨论的其他因素。
等偏好曲线
一项关于灰度级和轮廓效应的研究,其结果以曲线的形式绘制在图表上,称为等偏好曲线。
等偏好曲线现象表明,轮廓效应不仅取决于灰度级分辨率的降低,还取决于图像细节。
研究的本质是
如果图像具有更多细节,与细节较少的图像相比,当灰度级量化时,轮廓效应会较晚出现在此图像上。
根据最初的研究,研究人员拍摄了这三张图像,并在所有三张图像中改变了灰度级分辨率。
这些图像是
细节级别
第一张图像只包含一张脸,因此细节很少。第二张图像中还有一些其他物体,例如摄影师、他的相机、相机支架和背景物体等。而第三张图像比所有其他图像都包含更多细节。
实验
所有图像的灰度级分辨率都发生了变化,并要求观众主观评价这三张图像。评价之后,根据结果绘制图表。
结果
结果绘制在图表上。图表上的每条曲线都代表一张图像。x 轴上的值代表灰度级数,y 轴上的值代表每像素比特数 (k)。
图表如下所示。
根据该图表,我们可以看到,第一张人脸图像比其他两张图像更早地受到轮廓的影响。第二张摄影师图像在灰度级降低时,比第一张图像稍晚受到轮廓的影响。这是因为它比第一张图像包含更多细节。而第三张图像在比前两张图像晚得多之后才受到轮廓的影响,即在 4 bpp 之后。这是因为这张图像包含更多细节。
结论
因此,对于更详细的图像,等偏好曲线变得越来越垂直。这也意味着,对于细节量很大的图像,只需要很少的灰度级。
抖动概念
在关于量化和轮廓的最后两个教程中,我们看到降低图像的灰度级会减少表示图像所需的颜色数量。如果灰度级降低到 2,则最后出现的图像没有太多空间分辨率或不那么吸引人。
抖动
抖动是一个过程,通过该过程,我们可以创造出实际上不存在的颜色错觉。这是通过像素的随机排列来实现的。
例如,考虑这张图像。
这是一张只有黑白像素的图像。它的像素按顺序排列以形成下面显示的另一张图像。请注意,像素的排列方式发生了变化,但像素的数量没有变化。
为什么要抖动?
为什么我们需要抖动?答案在于它与量化的关系。
抖动与量化。
当我们将量化执行到最后一级时,我们看到最后一级(第 2 级)出现的图像如下所示。
现在,从这里图像我们可以看到,图片不是很清晰,特别是如果您观察爱因斯坦图像的左臂和背部。此外,这张图片也没有太多关于爱因斯坦的信息或细节。
现在,如果我们要将此图像更改为提供比这更多细节的图像,则必须执行抖动。
执行抖动。
首先,我们将处理阈值化。抖动通常用于改进阈值化。在阈值化过程中,锐利的边缘出现在图像中梯度平滑的地方。
在阈值化中,我们只需选择一个常数值。高于该值的所有像素都被视为 1,低于该值的所有像素都被视为 0。
阈值化后,我们得到了这张图像。
由于图像变化不大,因为此图像中的值已经是 0 和 1 或黑白。
现在我们对其执行一些随机抖动。这是一些像素的随机排列。
我们得到了一张提供更多细节的图像,但对比度非常低。
因此,我们进行更多抖动以提高对比度。我们得到的图像是这个
现在我们将随机抖动的概念与阈值混合在一起,我们得到了这样的图像。
现在您看到,我们只是通过重新排列图像的像素就获得了所有这些图像。这种重新排列可以是随机的,也可以根据某种度量来进行。
直方图介绍
在讨论直方图在图像处理中的应用之前,我们将首先了解什么是直方图,它是如何使用的,然后举一个直方图的例子,以便更好地理解直方图。
直方图
直方图是一个图表。一个显示任何事物频率的图表。直方图通常具有条形图,表示整个数据集中数据出现的频率。
直方图有两个轴,x 轴和 y 轴。
x 轴包含必须计算其频率的事件。
y 轴包含频率。
条形图的不同高度显示数据的不同出现频率。
直方图通常看起来像这样。
现在我们将看到构建此直方图的示例
示例
考虑一个编程学生班级,你正在教他们 Python。
学期结束时,你得到了表中显示的结果。但它非常混乱,没有显示你班级的整体结果。因此,你必须制作一个直方图来显示你班级的成绩出现频率。以下是你的操作方法。
成绩单
姓名 | 等级 |
---|---|
John | A |
Jack | D |
Carter | B |
Tommy | A |
Lisa | C+ |
Derek | A- |
Tom | B+ |
成绩单直方图
现在你要做的是找到 x 轴和 y 轴上的内容。
有一点需要确定,即 y 轴包含频率,那么 x 轴上是什么。x 轴包含必须计算其频率的事件。在这种情况下,x 轴包含等级。
现在我们将看到如何在图像中使用直方图。
图像的直方图
图像的直方图与其他直方图一样,也显示频率。但是图像直方图显示像素强度值的频率。在图像直方图中,x 轴显示灰度强度,y 轴显示这些强度的频率。
例如
上面爱因斯坦图片的直方图如下所示
直方图的 x 轴显示像素值的范围。因为它是一张 8 bpp 图像,这意味着它有 256 个灰度级别或灰色阴影。这就是为什么 x 轴的范围从 0 开始到 255 结束,间距为 50。而 y 轴是这些强度的计数。
从图表中可以看到,大多数频率高的条形图位于前半部分,即较暗的部分。这意味着我们得到的图像较暗。这也可以从图像中得到证明。
直方图的应用
直方图在图像处理中有很多用途。正如上面讨论的那样,它的第一个用途是图像分析。我们只需查看直方图就可以预测图像的内容。这就像查看人体骨骼的X光片一样。
直方图的第二个用途是用于亮度调整。直方图在图像亮度方面应用广泛。不仅用于亮度调整,直方图还用于调整图像的对比度。
直方图的另一个重要用途是图像均衡化。
最后但同样重要的是,直方图在阈值分割中应用广泛。这主要用于计算机视觉。
亮度和对比度
亮度
亮度是一个相对的概念。它取决于你的视觉感知。由于亮度是一个相对的概念,因此亮度可以定义为光源输出的能量相对于我们比较的光源而言的多少。在某些情况下,我们可以很容易地说图像很亮,而在某些情况下,则不容易感知。
例如
看看这两张图像,比较一下哪一张更亮。
我们可以很容易地看出,右边的图像比左边的图像更亮。
但是,如果右边的图像比左边的图像更暗,那么可以说左边的图像比右边的图像更亮。
如何使图像更亮。
亮度可以通过简单地对图像矩阵进行加减来简单地增加或减少。
考虑这幅5行5列的黑色图像
由于我们已经知道,每张图像背后都有一个包含像素值的矩阵。此图像矩阵如下所示。
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
由于整个矩阵都填充为零,因此图像非常暗。
现在,我们将它与另一幅相同的黑色图像进行比较,看看这幅图像是否变亮了。
尽管如此,两幅图像看起来仍然相同。为了使第二幅图像更亮,我们只需要将值1添加到表示它的矩阵的每个元素中。
我们将要做的是,简单地将值1添加到图像1的矩阵的每个值中。添加后,图像1将如下所示。
现在,我们将再次将其与图像2进行比较,看看是否有任何区别。
我们看到,我们仍然无法分辨哪张图像更亮,因为两张图像看起来都一样。
现在我们将要做的是,我们将向图像1的矩阵的每个值添加50,看看图像变成了什么样子。
输出如下所示。
现在,我们将再次将其与图像2进行比较。
现在您可以看到,图像1比图像2略亮。我们继续,再向图像1的矩阵添加45个值,这次我们再次比较两幅图像。
现在当你比较它时,你会发现图像1明显比图像2亮。
它甚至比旧的图像1更亮。此时,图像1的矩阵在每个索引处都包含100,首先添加5,然后是50,然后是45。所以5 + 50 + 45 = 100。
对比度
对比度可以简单地解释为图像中最大和最小像素强度之间的差异。
例如。
考虑亮度中的最终图像1。
此图像的矩阵是
100 | 100 | 100 | 100 | 100 |
100 | 100 | 100 | 100 | 100 |
100 | 100 | 100 | 100 | 100 |
100 | 100 | 100 | 100 | 100 |
100 | 100 | 100 | 100 | 100 |
此矩阵中的最大值为100。
此矩阵中的最小值为100。
对比度 = 最大像素强度(减去)最小像素强度
= 100(减去)100
= 0
0表示此图像的对比度为0。
图像变换
在讨论什么是图像变换之前,我们将讨论什么是变换。
变换。
变换是一个函数。一个在执行某些操作后将一个集合映射到另一个集合的函数。
数字图像处理系统
我们在入门教程中已经看到,在数字图像处理中,我们将开发一个系统,其输入将是一幅图像,输出也将是一幅图像。并且系统将对输入图像进行一些处理,并将其处理后的图像作为输出。如下图所示。
现在,在这个数字系统内部应用的处理图像并将其转换为输出的函数可以称为变换函数。
因为它显示了变换或关系,即图像1如何转换为图像2。
图像变换。
考虑这个等式
G(x,y) = T{ f(x,y) }
在这个等式中,
F(x,y) = 需要应用变换函数的输入图像。
G(x,y) = 输出图像或处理后的图像。
T是变换函数。
输入图像和处理后的输出图像之间的这种关系也可以表示为。
s = T (r)
其中r实际上是f(x,y)在任何点的像素值或灰度强度。s是g(x,y)在任何点的像素值或灰度强度。
基本的灰度级变换已经在我们的基本灰度级变换教程中讨论过。
现在我们将讨论一些非常基本变换函数。
示例
考虑这个变换函数。
让我们取点r为256,点p为127。考虑这幅图像为一幅1bpp图像。这意味着我们只有两个强度级别,即0和1。在这种情况下,图中所示的变换可以解释为:
所有低于127(点p)的像素强度值均为0,表示黑色。所有高于127的像素强度值均为1,表示白色。但在127的精确点上,传输发生了突然变化,因此我们无法判断在该精确点上的值为0还是1。
从数学上讲,此变换函数可以表示为
考虑另一个这样的变换
现在,如果你看一下这个特定的图表,你会看到输入图像和输出图像之间有一个直线过渡线。
它表明,对于输入图像的每个像素或强度值,输出图像都有相同的强度值。这意味着输出图像是输入图像的精确复制品。
它可以用数学表示为
g(x,y) = f(x,y)
在这种情况下,输入和输出图像如下所示。
直方图滑动
直方图的基本概念已在直方图入门教程中讨论过。但我们将在此简要介绍直方图。
直方图
直方图只不过是一个显示数据出现频率的图表。直方图在图像处理中有很多用途,我们将在此讨论其中一个用途,称为直方图滑动。
直方图滑动。
在直方图滑动中,我们只需简单地将整个直方图向右或向左移动。由于直方图向右或向左移动或滑动,图像中可以看到明显的变化。在本教程中,我们将使用直方图滑动来操纵亮度。
术语,即:亮度已在我们的亮度和对比度入门教程中讨论过。但我们将在此简要定义一下。
亮度
亮度是一个相对的概念。亮度可以定义为特定光源发出的光强度。
对比度
对比度可以定义为图像中最大和最小像素强度之间的差异。
滑动直方图
使用直方图滑动增加亮度
此图像的直方图如下所示。
此直方图的y轴是频率或计数。在x轴上,我们有灰度值。从上面的直方图可以看出,那些计数超过700的灰度强度位于前半部分,即朝向较暗的部分。这就是为什么我们得到一幅有点暗的图像。
为了使其变亮,我们将直方图向右滑动,或朝向较亮的部分滑动。为此,我们需要至少向此图像添加50个值。因为我们可以从上面的直方图中看到,此图像也具有0像素强度,即纯黑色。因此,如果我们将0添加到50,我们将把位于0强度的所有值移到50强度,其余的值将相应地移动。
让我们试试。
在向每个像素强度添加50后,我们得到了以下结果。
图像如下所示。
它的直方图如下所示。
让我们比较这两幅图像及其直方图,看看发生了什么变化。
结论
从新的直方图中我们可以清楚地看到,所有像素值都已向右移动,其效果可以在新图像中看到。
使用直方图滑动降低亮度
现在,如果我们要降低这幅新图像的亮度,以至于旧的图像看起来更亮,我们必须从新图像的所有矩阵中减去一些值。我们将减去的值为80。因为我们已经向原始图像添加了50,并且得到了一幅新的更亮的图像,现在如果我们要使其变暗,我们必须至少从中减去超过50的值。
从新图像中减去80后,我们得到了以下结果。
结论
从新图像的直方图可以清楚地看出,所有像素值都已向右移动,因此,可以从图像中验证新图像更暗,并且现在原始图像与这幅新图像相比看起来更亮。
直方图拉伸
我们在直方图入门教程中讨论的直方图的另一个优点是对比度增强。
有两种增强对比度的方法。第一种称为直方图拉伸,它可以增加对比度。第二种称为直方图均衡化,它可以增强对比度,这已在我们直方图均衡化教程中讨论过。
在讨论直方图拉伸以增加对比度之前,我们将简要定义对比度。
对比度。
对比度是最大和最小像素强度之间的差异。
考虑此图像。
此图像的直方图如下所示。
现在我们从这张图像中计算对比度。
对比度 = 225。
现在我们将增加图像的对比度。
增加图像的对比度
用于拉伸图像直方图以增加对比度的公式为
该公式需要找到最小和最大像素强度乘以灰度级别。在我们的例子中,图像是8bpp,因此灰度级别为256。
最小值为0,最大值为225。因此,在我们的例子中,公式为
其中f(x,y)表示每个像素强度的值。对于图像中的每个f(x,y),我们将计算这个公式。
完成此操作后,我们将能够增强对比度。
应用直方图拉伸后,将显示以下图像。
下图显示了此图像的拉伸直方图。
注意直方图的形状和对称性。直方图现在被拉伸或扩展了。请看一看。
在这种情况下,图像的对比度可以计算为
对比度 = 240
因此,可以说图像的对比度增加了。
注意:这种增加对比度的方法并不总是有效,在某些情况下会失败。
直方图拉伸的失败
正如我们所讨论的,该算法在某些情况下会失败。这些情况包括图像中存在像素强度为 0 和 255 的图像。
因为当图像中存在像素强度为 0 和 255 时,它们就会成为最小和最大像素强度,从而破坏了这样的公式。
原始公式
将失败情况的值代入公式
简化该表达式得到
这意味着输出图像等于处理后的图像。这意味着此图像没有进行直方图拉伸。
概率论简介
PMF 和 CDF 这两个术语都属于概率和统计。现在你脑海中应该出现的问题是,为什么我们要学习概率。这是因为 PMF 和 CDF 这两个概念将在下一个直方图均衡教程中使用。因此,如果你不知道如何计算 PMF 和 CDF,你就无法对你的图像应用直方图均衡。
.什么是 PMF?
PMF 代表概率质量函数。顾名思义,它给出数据集中每个数字的概率,或者可以说它基本上给出每个元素的计数或频率。
如何计算 PMF
我们将通过两种不同的方式计算 PMF。首先是从矩阵,因为在下一个教程中,我们必须从矩阵计算 PMF,而图像只不过是一个二维矩阵。
然后我们将举另一个例子,在这个例子中我们将从直方图计算 PMF。
考虑这个矩阵。
1 | 2 | 7 | 5 | 6 |
7 | 2 | 3 | 4 | 5 |
0 | 1 | 5 | 7 | 3 |
1 | 2 | 5 | 6 | 7 |
6 | 1 | 0 | 3 | 4 |
现在,如果我们要计算这个矩阵的 PMF,我们将这样操作。
首先,我们将取矩阵中的第一个值,然后我们将计算这个值在整个矩阵中出现的次数。计数后,它们可以表示在直方图中,也可以表示在下表中。
PMF
0 | 2 | 2/25 |
1 | 4 | 4/25 |
2 | 3 | 3/25 |
3 | 3 | 3/25 |
4 | 2 | 2/25 |
5 | 4 | 4/25 |
6 | 3 | 3/25 |
7 | 4 | 4/25 |
请注意,计数的总和必须等于值的总数。
从直方图计算 PMF
上图直方图显示了 8 位/像素图像的灰度值的频率。
现在,如果我们必须计算它的 PMF,我们将简单地查看垂直轴上每个条形的计数,然后将其除以总计数。
所以上面直方图的 PMF 是这个。
需要注意的另一个重要点是,它不是单调递增的。因此,为了使其单调递增,我们将计算其 CDF。
什么是 CDF?
CDF 代表累积分布函数。它是一个计算 PMF 计算的所有值的累积和的函数。它基本上是对前一个值的求和。
它是如何计算的?
我们将使用直方图计算 CDF。以下是它的操作方法。考虑上面显示的显示 PMF 的直方图。
由于这个直方图不是单调递增的,所以我们将使其单调递增。
我们将简单地保持第一个值不变,然后在第二个值中,我们将添加第一个值,依此类推。
以下是上述 PMF 函数的 CDF。
现在你可以从上面的图表中看到,PMF 的第一个值保持不变。PMF 的第二个值加到第一个值中并放在 128 上。PMF 的第三个值加到 CDF 的第二个值中,得到 110/110,等于 1。
而且现在,该函数呈单调递增趋势,这是直方图均衡的必要条件。
直方图均衡中 PMF 和 CDF 的用法
直方图均衡。
直方图均衡将在下一个教程中讨论,但下面简要介绍了直方图均衡。
直方图均衡用于增强图像的对比度。
PMF 和 CDF 都用于直方图均衡,如本教程开头所述。在直方图均衡中,第一步和第二步分别是 PMF 和 CDF。由于在直方图均衡中,我们必须均衡图像的所有像素值。因此,PMF 帮助我们计算图像中每个像素值的概率。CDF 给出了这些值的累积和。此外,将此 CDF 乘以级别,以找到新的像素强度,这些强度映射到旧值中,并且直方图得到均衡。
直方图均衡
我们已经看到可以使用直方图拉伸来增加对比度。在本教程中,我们将了解如何使用直方图均衡来增强对比度。
在执行直方图均衡之前,你必须了解均衡直方图中使用的两个重要概念。这两个概念称为 PMF 和 CDF。
它们在我们的 PMF 和 CDF 教程中进行了讨论。请访问它们以便成功掌握直方图均衡的概念。
直方图均衡
直方图均衡用于增强对比度。不必总是增加对比度。在某些情况下,直方图均衡可能会更糟糕。在这些情况下,对比度会降低。
让我们以以下图像为例,作为一个简单的图像来开始直方图均衡。
图像
此图像的直方图
此图像的直方图显示如下。
现在我们将对其执行直方图均衡。
PMF
首先,我们必须计算此图像中所有像素的 PMF(概率质量函数)。如果你不知道如何计算 PMF,请访问我们的 PMF 计算教程。
CDF
我们的下一步涉及计算 CDF(累积分布函数)。同样,如果你不知道如何计算 CDF,请访问我们的 CDF 计算教程。
根据灰度级计算 CDF
例如,考虑一下,第二步计算的 CDF 看起来像这样。
灰度级值 | CDF |
---|---|
0 | 0.11 |
1 | 0.22 |
2 | 0.55 |
3 | 0.66 |
4 | 0.77 |
5 | 0.88 |
6 | 0.99 |
7 | 1 |
然后在这个步骤中,你将把 CDF 值乘以(灰度级(减去)1)。
假设我们有一个 3 bpp 图像。那么我们拥有的级别数为 8。1 减去 8 为 7。因此我们将 CDF 乘以 7。这是我们乘法后得到的结果。
灰度级值 | CDF | CDF * (级别-1) |
---|---|---|
0 | 0.11 | 0 |
1 | 0.22 | 1 |
2 | 0.55 | 3 |
3 | 0.66 | 4 |
4 | 0.77 | 5 |
5 | 0.88 | 6 |
6 | 0.99 | 6 |
7 | 1 | 7 |
现在是最后一步,我们必须将新的灰度级值映射到像素数。
假设我们的旧灰度级值具有这些像素数。
灰度级值 | 频率 |
---|---|
0 | 2 |
1 | 4 |
2 | 6 |
3 | 8 |
4 | 10 |
5 | 12 |
6 | 14 |
7 | 16 |
现在,如果我们将新值映射到,那么这就是我们得到的结果。
灰度级值 | 新的灰度级值 | 频率 |
---|---|---|
0 | 0 | 2 |
1 | 1 | 4 |
2 | 3 | 6 |
3 | 4 | 8 |
4 | 5 | 10 |
5 | 6 | 12 |
6 | 6 | 14 |
7 | 7 | 16 |
现在将这些新值映射到直方图上,你就完成了。
让我们将此技术应用于我们的原始图像。应用后,我们得到了以下图像及其直方图。
直方图均衡图像
此图像的累积分布函数
直方图均衡直方图
比较两个直方图和图像
结论
从图像中可以清楚地看出,新的图像对比度得到了增强,并且其直方图也得到了均衡。这里还有一个需要注意的重要一点,即在直方图均衡过程中,直方图的整体形状会发生变化,而在直方图拉伸中,直方图的整体形状保持不变。
灰度级变换
在我们的基本变换教程中,我们讨论了一些基本变换。在本教程中,我们将了解一些基本灰度级变换。
图像增强
与未增强图像相比,增强图像可提供更好的对比度和更详细的图像。图像增强具有广泛的应用。它用于增强医学图像、遥感图像、卫星图像等。
变换函数如下所示
s = T ( r )
其中 r 是输入图像的像素,s 是输出图像的像素。T 是一个变换函数,它将 r 的每个值映射到 s 的每个值。图像增强可以通过下面讨论的灰度级变换来完成。
灰度级变换
有三种基本灰度级变换。
线性
对数
幂律
这些转换的整体图形显示如下。
线性变换
首先,我们将研究线性变换。线性变换包括简单的恒等变换和负变换。恒等变换已在我们的图像变换教程中讨论过,但此处对该变换进行了简要说明。
恒等变换由直线表示。在这个变换中,输入图像的每个值都直接映射到输出图像的另一个值。这会导致输入图像和输出图像相同。因此被称为恒等变换。它显示如下
负变换
第二个线性变换是负变换,它是恒等变换的逆。在负变换中,输入图像的每个值都从 L-1 中减去并映射到输出图像。
结果大致如下。
输入图像
输出图像
在这种情况下,进行了以下转换。
s = (L – 1) – r
由于爱因斯坦的输入图像是一个 8 bpp 图像,因此此图像中的级别数为 256。将 256 代入方程,我们得到:
s = 255 – r
因此,每个值都减去 255,并且上面显示了结果图像。所以发生的情况是,较亮的像素变暗,较暗的图像变亮。它导致图像反转。
下图所示。
对数变换
对数变换包含两种类型的变换:对数变换和反对数变换。
对数变换
对数变换可以用以下公式定义:
s = c log(r + 1).
其中,s 和 r 分别是输出图像和输入图像的像素值,c 是一个常数。在输入图像的每个像素值中添加 1,是因为如果图像中存在像素强度为 0 的像素,则 log(0) 等于无穷大。因此添加 1,使最小值至少为 1。
在对数变换过程中,图像中的暗像素比高像素值扩展得更多。高像素值在对数变换中会压缩。这会导致以下图像增强效果。
对数变换中的 c 值可以调整您所需的增强类型。
输入图像
对数变换图像
反对数变换与对数变换相反。
幂律变换
幂律变换还包含两种变换,包括 n 次幂变换和 n 次方根变换。这些变换可以用以下表达式表示:
s=cr^γ
符号 γ 称为伽马值,因此这种变换也称为伽马变换。
γ 值的变化会改变图像的增强效果。不同的显示设备/显示器具有其自身的伽马校正,这就是为什么它们以不同的强度显示图像的原因。
这种类型的变换用于增强不同类型显示设备的图像。不同显示设备的伽马值不同。例如,CRT 的伽马值在 1.8 到 2.5 之间,这意味着 CRT 上显示的图像较暗。
伽马校正。
s=cr^γ
s=cr^(1/2.5)
这里显示了具有不同伽马值的同一图像。
例如
伽马 = 10
伽马 = 8
伽马 = 6
卷积的概念
本教程介绍了信号与系统的一个非常重要的概念。我们将完整地讨论卷积。它是什么?为什么需要它?我们可以用它实现什么?
我们将从图像处理的基础知识开始讨论卷积。
什么是图像处理。
正如我们在图像处理教程的介绍和信号与系统中所讨论的那样,图像处理或多或少是对信号与系统的研究,因为图像只不过是一个二维信号。
我们还讨论了,在图像处理中,我们正在开发一个系统,其输入是图像,输出也是图像。这可以用图示表示为:
上图中标注为“数字图像处理系统”的框可以认为是一个黑盒。
它可以更好地表示为:
我们目前达到了什么阶段
到目前为止,我们已经讨论了两种重要的图像处理方法。或者换句话说,到目前为止,我们的黑盒以两种不同的方式工作。
两种不同的图像处理方法是:
图表(直方图)
此方法称为直方图处理。我们在之前的教程中详细讨论了它,用于提高对比度、图像增强、亮度等。
变换函数
此方法称为变换,我们讨论了不同类型的变换和一些灰度变换。
另一种处理图像的方法
在这里,我们将讨论另一种处理图像的方法。这种方法称为卷积。通常用于图像处理的黑盒(系统)是 LTI 系统或线性时不变系统。线性是指输出始终是线性的,既不是对数也不是指数或其他任何形式。时间不变是指在时间上保持不变的系统。
所以现在我们将使用第三种方法。它可以表示为:
它可以用两种数学方式表示
g(x,y) = h(x,y) * f(x,y)
它可以解释为“掩膜与图像的卷积”。
或者
g(x,y) = f(x,y) * h(x,y)
它可以解释为“图像与掩膜的卷积”。
可以用两种方式表示这一点,因为卷积运算符 (*) 是可交换的。h(x,y) 是掩膜或滤波器。
什么是掩膜?
掩膜也是一个信号。它可以用一个二维矩阵来表示。掩膜通常是 1x1、3x3、5x5、7x7 等阶数。掩膜必须是奇数阶,否则无法找到掩膜的中心。为什么我们需要找到掩膜的中心?答案在下面“如何执行卷积?”主题中。
如何执行卷积?
为了对图像执行卷积,应采取以下步骤。
仅翻转一次掩膜(水平和垂直)
将掩膜滑到图像上。
将对应的元素相乘,然后相加
重复此过程,直到计算出图像的所有值。
卷积示例
让我们执行一些卷积。第一步是翻转掩膜。
掩膜
让我们将我们的掩膜设为:
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
水平翻转掩膜
3 | 2 | 1 |
6 | 5 | 4 |
9 | 8 | 7 |
垂直翻转掩膜
9 | 8 | 7 |
6 | 5 | 4 |
3 | 2 | 1 |
图像
让我们考虑一个这样的图像:
2 | 4 | 6 |
8 | 10 | 12 |
14 | 16 | 18 |
卷积
将掩膜在图像上卷积。它是这样完成的。将掩膜的中心放在图像的每个元素上。将对应的元素相乘,然后相加,并将结果粘贴到放置掩膜中心的图像元素上。
红色框是掩膜,橙色值是掩膜的值。黑色框和值属于图像。现在对于图像的第一个像素,其值将计算为:
第一个像素 = (5*2) + (4*4) + (2*8) + (1*10)
= 10 + 16 + 16 + 10
= 52
将 52 放到原始图像的第一个索引处,并对图像的每个像素重复此过程。
为什么使用卷积
卷积可以实现前两种图像处理方法无法实现的功能。这些包括模糊、锐化、边缘检测、降噪等。
掩膜的概念
什么是掩膜。
掩膜是一个滤波器。掩膜的概念也称为空间滤波。掩膜也称为滤波。在这个概念中,我们只处理直接在图像上执行的滤波操作。
下面显示了一个示例掩膜
-1 | 0 | 1 |
-1 | 0 | 1 |
-1 | 0 | 1 |
什么是滤波。
滤波过程也称为将掩膜与图像卷积。由于此过程与卷积相同,因此滤波器掩膜也称为卷积掩膜。
它是如何完成的。
滤波和应用掩膜的一般过程包括将滤波器掩膜在图像中逐点移动。在原始图像的每个点 (x,y) 处,滤波器的响应由预定义的关系计算。所有滤波器值都是预定义的,并且是标准的。
滤波器的类型
一般有两种类型的滤波器。一种称为线性滤波器或平滑滤波器,另一种称为频域滤波器。
为什么使用滤波器?
滤波器应用于图像的多种用途。两种最常见的用途如下:
滤波器用于模糊和降噪
滤波器用于边缘检测和锐化
模糊和降噪
滤波器最常用于模糊和降噪。模糊用于预处理步骤,例如在大型物体提取之前从图像中去除小的细节。
用于模糊的掩膜。
用于模糊的常用掩膜是:
盒式滤波器
加权平均滤波器
在模糊过程中,我们减少图像中的边缘内容,并尽量使不同像素强度之间的过渡尽可能平滑。
借助模糊也可以进行降噪。
边缘检测和锐化
掩膜或滤波器也可用于图像中的边缘检测和提高图像锐度。
什么是边缘。
我们也可以说,图像中突然变化的不连续性称为边缘。图像中明显的过渡称为边缘。下面显示了一幅带有边缘的图片。
原始图片。
带有边缘的相同图片
模糊的概念
我们在之前的掩膜概念教程中简要介绍了模糊,但我们将在本文中正式讨论它。
模糊
在模糊中,我们只是简单地模糊图像。如果我们能够正确地感知图像中的所有物体及其形状,则图像看起来更清晰或更详细。例如,带有面部的图像,当我们能够非常清晰地识别眼睛、耳朵、鼻子、嘴唇、额头等时,看起来很清晰。物体的形状是由于其边缘造成的。因此,在模糊中,我们只是简单地减少边缘内容,并使从一种颜色到另一种颜色的过渡非常平滑。
模糊与缩放。
您可能在缩放图像时看到过模糊的图像。当您使用像素复制缩放图像并且缩放因子增加时,您会看到模糊的图像。此图像的细节也较少,但这并不是真正的模糊。
因为在缩放中,您向图像添加新的像素,这会增加图像中像素的总数,而在模糊中,普通图像和模糊图像的像素数量保持不变。
模糊图像的常见示例。
滤波器的类型。
模糊可以通过多种方式实现。用于执行模糊的常用滤波器类型是:
均值滤波器
加权平均滤波器
高斯滤波器
在这三种滤波器中,我们将在这里讨论前两种,高斯滤波器将在后续教程中讨论。
均值滤波器。
均值滤波器也称为盒式滤波器和平均滤波器。均值滤波器具有以下属性:
它必须是奇数阶的
所有元素的总和应为 1
所有元素都应相同
如果我们遵循此规则,则对于 3x3 的掩膜,我们将得到以下结果:
1/9 | 1/9 | 1/9 |
1/9 | 1/9 | 1/9 |
1/9 | 1/9 | 1/9 |
由于它是一个 3x3 的掩膜,这意味着它有 9 个单元格。所有元素之和应等于 1 的条件可以通过将每个值除以 9 来实现,因为:
1/9 + 1/9 + 1/9 + 1/9 + 1/9 + 1/9 + 1/9 + 1/9 + 1/9 = 9/9 = 1
3x3 掩膜对图像的结果如下所示:
原始图像
模糊图像
结果可能不是很清晰。让我们增加模糊度。可以通过增加掩膜的大小来增加模糊度。掩膜越大,模糊度越大。因为使用更大的掩膜,可以处理更多的像素,并定义一个平滑的过渡。
5x5 掩膜对图像的结果如下所示:
原始图像
模糊图像
同样,如果我们增加掩膜大小,模糊度会更大,结果如下所示:
7x7 掩膜对图像的结果如下所示:
原始图像
模糊图像
9x9 掩膜对图像的结果如下所示:
原始图像
模糊图像
11x11 掩膜对图像的结果如下所示:
原始图像
模糊图像
加权平均滤波器。
在加权平均滤波器中,我们赋予中心值更大的权重。因此,中心值的贡献比其他值更大。由于加权平均滤波,我们实际上可以控制模糊度。
加权平均滤波器的属性是:
它必须是奇数阶的
所有元素的总和应为 1
中心元素的权重应大于所有其他元素
滤波器 1
1 | 1 | 1 |
1 | 2 | 1 |
1 | 1 | 1 |
满足两个属性(1 和 3)。但是属性 2 未满足。因此,为了满足该属性,我们将简单地将整个滤波器除以 10 或乘以 1/10。
滤波器 2
1 | 1 | 1 |
1 | 10 | 1 |
1 | 1 | 1 |
除数 = 18。
边缘检测的概念
我们在掩膜介绍教程中简要讨论了边缘检测。我们将在本文中正式讨论边缘检测。
什么是边缘。
图像中不连续性的突然变化称为边缘。图像中显著的过渡也称为边缘。
边缘类型。
通常边缘分为三种类型
水平边缘
垂直边缘
对角线边缘
为什么要检测边缘。
图像的大部分形状信息都包含在边缘中。因此,我们首先检测图像中的这些边缘,然后使用这些滤波器增强包含边缘的图像区域,从而提高图像的清晰度,使图像更加清晰。
以下是一些我们将在下节教程中讨论的边缘检测算子。
Prewitt算子
Sobel算子
Robinson罗盘掩膜
Krisch罗盘掩膜
拉普拉斯算子。
以上提到的所有滤波器都是线性滤波器或平滑滤波器。
Prewitt算子
Prewitt算子用于检测水平和垂直边缘。
Sobel算子
Sobel算子与Prewitt算子非常相似。它也是一个微分掩膜,用于边缘检测。它也计算水平和垂直方向的边缘。
Robinson罗盘掩膜
该算子也称为方向掩膜。在这个算子中,我们取一个掩膜,将其旋转到所有8个主要罗盘方向,以计算每个方向的边缘。
Kirsch罗盘掩膜
Kirsch罗盘掩膜也是一个微分掩膜,用于查找边缘。Kirsch掩膜也用于计算所有方向的边缘。
拉普拉斯算子。
拉普拉斯算子也是一个微分算子,用于查找图像中的边缘。拉普拉斯算子是二阶微分掩膜。它可以进一步细分为正拉普拉斯算子和负拉普拉斯算子。
所有这些掩膜都用于查找边缘。有些查找水平和垂直方向的边缘,有些只查找一个方向的边缘,有些查找所有方向的边缘。接下来的概念是锐化,可以在从图像中提取边缘后进行。
锐化
锐化与模糊相反。在模糊处理中,我们减少边缘内容;在锐化中,我们增加边缘内容。因此,为了增加图像中的边缘内容,我们必须首先找到边缘。
可以使用上述任何一种方法或任何算子来查找边缘。找到边缘后,我们将这些边缘添加到图像中,这样图像将具有更多边缘,并且看起来更清晰。
这是锐化图像的一种方法。
锐化后的图像如下所示。
原始图像
锐化图像
Prewitt算子
Prewitt算子用于图像边缘检测。它检测两种类型的边缘
水平边缘
垂直边缘
边缘是通过使用图像对应像素强度之间的差异计算的。所有用于边缘检测的掩膜也称为微分掩膜。因为正如我们在这个教程系列中多次提到的那样,图像也是一种信号,因此只能使用微分来计算信号的变化。这就是为什么这些算子也称为微分算子或微分掩膜。
所有微分掩膜都应具有以下属性
掩膜中应存在相反的符号。
掩膜的总和应等于零。
权重越大,边缘检测效果越好。
Prewitt算子为我们提供了两个掩膜,一个用于检测水平方向的边缘,另一个用于检测垂直方向的边缘。
垂直方向
-1 | 0 | 1 |
-1 | 0 | 1 |
-1 | 0 | 1 |
上述掩膜将找到垂直方向的边缘,这是因为垂直方向的列为零。当您将此掩膜与图像进行卷积时,它将为您提供图像中的垂直边缘。
工作原理
当我们将此掩膜应用于图像时,它会突出显示垂直边缘。它的工作原理就像一阶导数一样,计算边缘区域中像素强度的差异。由于中心列为零,因此它不包含图像的原始值,而是计算该边缘周围左右像素值的差值。这增加了边缘强度,并使其与原始图像相比得到增强。
水平方向
-1 | -1 | -1 |
0 | 0 | 0 |
1 | 1 | 1 |
上述掩膜将找到水平方向的边缘,这是因为零列位于水平方向。当您将此掩膜与图像进行卷积时,它将突出显示图像中的水平边缘。
工作原理
此掩膜将突出显示图像中的水平边缘。它也基于上述掩膜的原理,计算特定边缘像素强度之间的差异。由于掩膜的中心行由零组成,因此它不包含图像中边缘的原始值,而是计算特定边缘上下像素强度的差异。从而增加了强度的突然变化,使边缘更加清晰。上述两个掩膜都遵循微分掩膜的原理。两个掩膜中都有相反的符号,并且两个掩膜的总和等于零。第三个条件不适用于此算子,因为上述两个掩膜都是标准化的,我们不能更改其中的值。
现在是时候看看这些掩膜的实际效果了
示例图像
下面是一个示例图片,我们将一次应用上述两个掩膜。
应用垂直掩膜后
将垂直掩膜应用于上述示例图像后,将获得以下图像。此图像包含垂直边缘。通过与水平边缘图片进行比较,您可以更准确地判断。
应用水平掩膜后
将水平掩膜应用于上述示例图像后,将获得以下图像。
比较
您可以看到,在应用垂直掩膜的第一张图片中,所有垂直边缘都比原始图像更清晰。同样,在第二张图片中,我们应用了水平掩膜,结果所有水平边缘都清晰可见。这样,您可以看到我们可以从图像中检测水平和垂直边缘。
Sobel算子
Sobel算子与Prewitt算子非常相似。它也是一个微分掩膜,用于边缘检测。与Prewitt算子一样,Sobel算子也用于检测图像中的两种边缘。
垂直方向
水平方向
与Prewitt算子的区别
主要区别在于,在Sobel算子中,掩膜的系数不是固定的,可以根据我们的需要进行调整,除非它们不违反微分掩膜的任何属性。
以下是Sobel算子的垂直掩膜
-1 | 0 | 1 |
-2 | 0 | 2 |
-1 | 0 | 1 |
此掩膜的工作方式与Prewitt算子的垂直掩膜完全相同。只有一个区别,即它在第一列和第三列的中心具有“2”和“-2”值。当应用于图像时,此掩膜将突出显示垂直边缘。
工作原理
当我们将此掩膜应用于图像时,它会突出显示垂直边缘。它的工作原理就像一阶导数一样,计算边缘区域中像素强度的差异。
由于中心列为零,因此它不包含图像的原始值,而是计算该边缘周围左右像素值的差值。并且第一列和第三列的中心值分别为2和-2。
这为边缘区域周围的像素值赋予了更大的权重。这增加了边缘强度,并使其与原始图像相比得到增强。
以下是Sobel算子的水平掩膜
-1 | -2 | -1 |
0 | 0 | 0 |
1 | 2 | 1 |
上述掩膜将找到水平方向的边缘,这是因为零列位于水平方向。当您将此掩膜与图像进行卷积时,它将突出显示图像中的水平边缘。唯一的区别是它在第一行和第三行的中心元素为2和-2。
工作原理
此掩膜将突出显示图像中的水平边缘。它也基于上述掩膜的原理,计算特定边缘像素强度之间的差异。由于掩膜的中心行由零组成,因此它不包含图像中边缘的原始值,而是计算特定边缘上下像素强度的差异。从而增加了强度的突然变化,使边缘更加清晰。
现在是时候看看这些掩膜的实际效果了
示例图像
下面是一个示例图片,我们将一次应用上述两个掩膜。
应用垂直掩膜后
将垂直掩膜应用于上述示例图像后,将获得以下图像。
应用水平掩膜后
将水平掩膜应用于上述示例图像后,将获得以下图像
比较
您可以看到,在应用垂直掩膜的第一张图片中,所有垂直边缘都比原始图像更清晰。同样,在第二张图片中,我们应用了水平掩膜,结果所有水平边缘都清晰可见。
这样,您可以看到我们可以从图像中检测水平和垂直边缘。此外,如果您将Sobel算子的结果与Prewitt算子的结果进行比较,您会发现与Prewitt算子相比,Sobel算子可以找到更多边缘或使边缘更清晰。
这是因为在Sobel算子中,我们为边缘周围的像素强度分配了更大的权重。
对掩膜应用更大的权重
现在我们还可以看到,如果我们对掩膜应用更大的权重,它将为我们获得更多边缘。此外,正如教程开头提到的那样,Sobel算子没有固定的系数,因此这里还有另一个加权算子
-1 | 0 | 1 |
-5 | 0 | 5 |
-1 | 0 | 1 |
如果您将此掩膜的结果与Prewitt垂直掩膜的结果进行比较,很明显,此掩膜将比Prewitt掩膜提供更多边缘,这仅仅是因为我们在掩膜中分配了更大的权重。
Robinson罗盘掩膜
Robinson罗盘掩膜是另一种用于边缘检测的微分掩膜。该算子也称为方向掩膜。在此算子中,我们取一个掩膜,并将其旋转到所有8个主要罗盘方向,如下所示
北
西北
西
西南
南
东南
东
东北
没有固定的掩膜。您可以取任何掩膜,并且必须将其旋转以在所有上述方向上查找边缘。所有掩膜都基于零列的方向进行旋转。
例如,让我们看看以下位于北方向的掩膜,然后将其旋转以制作所有方向掩膜。
北方向掩膜
-1 | 0 | 1 |
-2 | 0 | 2 |
-1 | 0 | 1 |
西北方向掩膜
0 | 1 | 2 |
-1 | 0 | 1 |
-2 | -1 | 0 |
西方向掩膜
1 | 2 | 1 |
0 | 0 | 0 |
-1 | -2 | -1 |
西南方向掩膜
2 | 1 | 0 |
1 | 0 | -1 |
0 | -1 | -2 |
南方向掩膜
1 | 0 | -1 |
2 | 0 | -2 |
1 | 0 | -1 |
东南方向掩膜
0 | -1 | -2 |
1 | 0 | -1 |
2 | 1 | 0 |
东方向掩膜
-1 | -2 | -1 |
0 | 0 | 0 |
1 | 2 | 1 |
东北方向掩膜
-2 | -1 | 0 |
-1 | 0 | 1 |
0 | 1 | 2 |
您可以看到,所有方向都基于零方向覆盖。每个掩膜都将为您提供其方向上的边缘。现在让我们看看所有上述掩膜的结果。假设我们有一张示例图片,我们必须从中找到所有边缘。这是我们的示例图片
示例图片
现在我们将所有上述滤波器应用于此图像,并将获得以下结果。
北方向边缘
西北方向边缘
西方向边缘
西南方向边缘
南方向边缘
东南方向边缘
东方向边缘
东北方向边缘
您可以看到,通过应用所有上述掩膜,您将获得所有方向的边缘。结果也取决于图像。假设有一张图像没有任何东北方向的边缘,那么该掩膜将无效。
Krisch罗盘掩膜
Kirsch罗盘掩膜也是一个用于查找边缘的微分掩膜。这与Robinson罗盘掩膜类似,可以在罗盘的八个方向上查找边缘。Robinson和Kirsch罗盘掩膜之间的唯一区别在于,在Kirsch中,我们有一个标准掩膜,但在Kirsch中,我们可以根据自己的要求更改掩膜。
借助Kirsch罗盘掩膜,我们可以在以下八个方向上查找边缘。
北
西北
西
西南
南
东南
东
东北
我们采用一个符合导数掩膜所有属性的标准掩膜,然后旋转它来查找边缘。
例如,让我们看看以下位于北方向的掩膜,然后将其旋转以制作所有方向掩膜。
北方向掩膜
-3 | -3 | 5 |
-3 | 0 | 5 |
-3 | -3 | 5 |
西北方向掩膜
-3 | 5 | 5 |
-3 | 0 | 5 |
-3 | -3 | -3 |
西方向掩膜
5 | 5 | 5 |
-3 | 0 | -3 |
-3 | -3 | -3 |
西南方向掩膜
5 | 5 | -3 |
5 | 0 | -3 |
-3 | -3 | -3 |
南方向掩膜
5 | -3 | -3 |
5 | 0 | -3 |
5 | -3 | -3 |
东南方向掩膜
-3 | -3 | -3 |
5 | 0 | -3 |
5 | 5 | -3 |
东方向掩膜
-3 | -3 | -3 |
-3 | 0 | -3 |
5 | 5 | 5 |
东北方向掩膜
-3 | -3 | -3 |
-3 | 0 | 5 |
-3 | 5 | 5 |
可以看到,所有方向都被覆盖了,每个掩膜都会给出它自身方向的边缘。为了帮助你更好地理解这些掩膜的概念,我们将在真实的图像上应用它。假设我们有一张样本图片,我们需要从中找到所有边缘。这是我们的样本图片
示例图片
现在我们将所有上述滤波器应用于此图像,并将获得以下结果。
北方向边缘
西北方向边缘
西方向边缘
西南方向边缘
南方向边缘
东南方向边缘
东方向边缘
东北方向边缘
您可以看到,通过应用所有上述掩膜,您将获得所有方向的边缘。结果也取决于图像。假设有一张图像没有任何东北方向的边缘,那么该掩膜将无效。
拉普拉斯算子
拉普拉斯算子也是一个微分算子,用于查找图像中的边缘。拉普拉斯算子和其它算子(如 Prewitt、Sobel、Robinson 和 Kirsch)的主要区别在于,这些都是一阶微分掩膜,而拉普拉斯算子是二阶微分掩膜。在这个掩膜中,我们有两个进一步的分类,一个是正拉普拉斯算子,另一个是负拉普拉斯算子。
拉普拉斯算子和其它算子的另一个区别是,与其它算子不同,拉普拉斯算子不会以任何特定方向提取边缘,而是按以下分类提取边缘。
内边缘
外边缘
让我们看看拉普拉斯算子是如何工作的。
正拉普拉斯算子
在正拉普拉斯算子中,我们有一个标准掩膜,其中掩膜的中心元素应为负数,掩膜的角元素应为零。
0 | 1 | 0 |
1 | -4 | 1 |
0 | 1 | 0 |
正拉普拉斯算子用于提取图像中的外边缘。
负拉普拉斯算子
在负拉普拉斯算子中,我们也有一个标准掩膜,其中中心元素应为正数。所有角元素都应为零,掩膜中其余所有元素都应为 -1。
0 | -1 | 0 |
-1 | 4 | -1 |
0 | -1 | 0 |
负拉普拉斯算子用于提取图像中的内边缘
工作原理
拉普拉斯算子是一个微分算子;它的用途是突出图像中灰度级的间断,并试图弱化灰度级变化缓慢的区域。此操作的结果是产生这样的图像:在黑暗的背景上具有灰色的边缘线和其他间断。这会在图像中产生内边缘和外边缘
重要的是如何将这些滤波器应用于图像。记住,我们不能在同一图像上同时应用正拉普拉斯算子和负拉普拉斯算子。我们必须只应用一个,但要记住的是,如果我们将正拉普拉斯算子应用于图像,那么我们将结果图像从原始图像中减去以获得锐化图像。类似地,如果我们应用负拉普拉斯算子,那么我们必须将结果图像添加到原始图像以获得锐化图像。
让我们将这些滤波器应用于图像,看看它将如何从图像中获得内边缘和外边缘。假设我们有以下样本图像。
示例图像
应用正拉普拉斯算子后
应用正拉普拉斯算子后,我们将得到以下图像。
应用负拉普拉斯算子后
应用负拉普拉斯算子后,我们将得到以下图像。
频域介绍
我们已经处理了多个领域的图像。现在我们正在频域中处理信号(图像)。由于傅里叶级数和频域纯粹是数学,所以我们将尽量减少数学部分,更多地关注它在数字图像处理中的应用。
频域分析
到目前为止,在我们分析信号的所有域中,我们都是相对于时间来分析的。但在频域中,我们不是相对于时间分析信号,而是相对于频率分析。
空间域和频域的区别。
在空间域中,我们直接处理图像。图像像素的值随场景而变化。而在频域中,我们处理的是空间域中像素值变化的速率。
为简单起见,让我们这样说。
空间域
在简单的空间域中,我们直接处理图像矩阵。而在频域中,我们处理图像的方式是这样的。
频域
我们首先将图像变换为其频率分布。然后我们的黑盒系统执行它必须执行的任何处理,在这种情况下,黑盒的输出不是图像,而是一种变换。执行逆变换后,它被转换为图像,然后在空间域中查看。
它可以图示为
这里我们使用了变换这个词。它到底是什么意思?
变换。
可以使用称为变换的数学运算符将信号从时域转换为频域。有很多类型的变换可以做到这一点。其中一些如下所示。
傅里叶级数
傅里叶变换
拉普拉斯变换
Z 变换
在所有这些中,我们将在下一个教程中详细讨论傅里叶级数和傅里叶变换。
频率成分
空间域中的任何图像都可以用频域表示。但是这些频率到底是什么意思呢?
我们将频率成分分为两个主要成分。
高频成分
高频成分对应于图像中的边缘。
低频成分
图像中的低频成分对应于平滑区域。
傅里叶级数和变换
在最后一个关于频域分析的教程中,我们讨论了傅里叶级数和傅里叶变换用于将信号转换为频域。
傅里叶
傅里叶是1822年的数学家。他提出了傅里叶级数和傅里叶变换,将信号转换为频域。
傅里叶级数
傅里叶级数简单地说,周期性信号可以表示为正弦和余弦的和,当乘以一定的权重时。它进一步指出,周期性信号可以分解成具有以下属性的更进一步的信号。
信号是正弦和余弦
信号是彼此的谐波
它可以图示为
在上图信号中,最后一个信号实际上是所有上述信号的总和。这是傅里叶的想法。
它是如何计算的。
正如我们在频域中看到的,为了在频域中处理图像,我们需要首先使用它将其转换为频域,并且我们必须取输出的逆变换以将其转换回空间域。这就是为什么傅里叶级数和傅里叶变换都有两个公式的原因。一个用于转换,一个用于将其转换回空间域。
傅里叶级数
傅里叶级数可以用这个公式表示。
反变换可以用这个公式计算。
傅里叶变换
傅里叶变换简单地说,曲线下面积有限的非周期信号也可以表示为正弦和余弦的积分,在乘以一定的权重后。
傅里叶变换有许多广泛的应用,包括图像压缩(例如 JPEG 压缩)、滤波和图像分析。
傅里叶级数和变换的区别
虽然傅里叶级数和傅里叶变换都是由傅里叶提出的,但它们之间的区别在于,傅里叶级数应用于周期性信号,而傅里叶变换应用于非周期性信号。
哪个应用于图像。
现在的问题是,傅里叶级数还是傅里叶变换应用于图像。这个问题的答案在于图像是什么。图像是非周期性的。由于图像是非周期性的,因此使用傅里叶变换将其转换为频域。
离散傅里叶变换。
由于我们处理的是图像,实际上是数字图像,因此对于数字图像,我们将使用离散傅里叶变换。
考虑上述正弦曲线的傅里叶项。它包括三件事。
空间频率
幅度
相位
空间频率直接与图像的亮度相关。正弦曲线的幅度直接与对比度相关。对比度是最大和最小像素强度之间的差异。相位包含颜色信息。
二维离散傅里叶变换的公式如下。
离散傅里叶变换实际上是采样的傅里叶变换,因此它包含一些表示图像的样本。在上式中,f(x,y)表示图像,F(u,v)表示离散傅里叶变换。二维逆离散傅里叶变换的公式如下。
逆离散傅里叶变换将傅里叶变换转换回图像
考虑这个信号。
现在我们将看到一个图像,我们将计算它的 FFT 幅度谱,然后计算移位的 FFT 幅度谱,然后取该移位谱的对数。
原始图像
傅里叶变换幅度谱
移位的傅里叶变换
移位的幅度谱
卷积定理
在最后一个教程中,我们讨论了频域中的图像。在本教程中,我们将定义频域和图像(空间域)之间的关系。
例如
考虑这个例子。
频域中的同一图像可以表示为。
那么图像或空间域与频域之间有什么关系呢?这种关系可以用一个称为卷积定理的定理来解释。
卷积定理
空间域和频域之间的关系可以通过卷积定理建立。
卷积定理可以表示为。
它可以表述为:空间域中的卷积等于频域中的滤波,反之亦然。
频域中的滤波可以表示如下
滤波步骤如下。
第一步,我们必须对空间域中的图像进行一些预处理,这意味着增加其对比度或亮度
然后我们将进行图像的离散傅里叶变换
然后我们将对离散傅里叶变换进行中心化,因为我们将把离散傅里叶变换从角点移到中心
然后我们将应用滤波,这意味着我们将用滤波函数乘以傅里叶变换
然后我们将再次将 DFT 从中心移到角点
最后一步是进行逆离散傅里叶变换,将结果从频域转换回空间域
并且这个后处理步骤是可选的,就像预处理一样,我们只是增加了图像的外观。
滤波器
频域中滤波器的概念与卷积中掩膜的概念相同。
将图像转换为频域后,在滤波过程中应用一些滤波器来对图像执行不同类型的处理。处理包括模糊图像、锐化图像等。
用于这些目的的常用滤波器类型是
理想高通滤波器
理想低通滤波器
高斯高通滤波器
高斯低通滤波器
在下一个教程中,我们将详细讨论滤波器。
高通滤波器与低通滤波器
在最后一个教程中,我们简要地讨论了滤波器。在本教程中,我们将详细讨论它们。在讨论之前,让我们先谈谈掩膜。掩膜的概念已经在我们的卷积和掩膜教程中讨论过。
模糊掩膜与微分掩膜。
我们将对模糊掩膜和微分掩膜进行比较。
模糊掩膜
模糊掩膜具有以下属性。
模糊掩膜中的所有值均为正值
所有值的总和等于 1
使用模糊掩码可以减少边缘内容。
随着掩码尺寸的增加,平滑效果会越明显。
导数掩码
导数掩码具有以下特性。
导数掩码包含正值和负值。
导数掩码中所有值的总和等于零。
导数掩码会增加边缘内容。
随着掩码尺寸的增加,边缘内容也会增加。
模糊掩码和导数掩码与高通滤波器和低通滤波器的关系。
模糊掩码和导数掩码与高通滤波器和低通滤波器的关系可以简单地定义为:
模糊掩码也称为低通滤波器。
导数掩码也称为高通滤波器。
高频分量和低频分量
高频分量表示边缘,而低频分量表示平滑区域。
理想低通滤波器和理想高通滤波器
这是一个常见的低通滤波器示例。
当内部值为1,外部值为0时,得到模糊图像。随着内部值1的尺寸增加,模糊程度增加,边缘内容减少。
这是一个常见的高通滤波器示例。
当内部值为0时,得到边缘,得到素描图像。频域中的理想低通滤波器如下所示。
理想低通滤波器可以用图形表示为:
现在让我们将此滤波器应用于实际图像,看看结果。
示例图像。
频域图像
将滤波器应用于此图像
结果图像
同样,理想高通滤波器也可以应用于图像。但结果显然不同,因为低通滤波器减少了边缘内容,而高通滤波器增加了边缘内容。
高斯低通滤波器和高斯高通滤波器
高斯低通滤波器和高斯高通滤波器可以最小化理想低通滤波器和高通滤波器中出现的问题。
这个问题被称为吉布斯现象(ringing effect)。这是因为在某些点上,一种颜色到另一种颜色的过渡无法精确定义,因此在该点出现吉布斯现象。
请看这个图表。
这是理想低通滤波器的表示。在Do的精确点,无法确定其值为0还是1。因此,在该点出现吉布斯现象。
因此,为了减少理想低通滤波器和理想高通滤波器中出现的效果,引入了以下高斯低通滤波器和高斯高通滤波器。
高斯低通滤波器
滤波和低通的概念保持不变,只是过渡变得不同,并且更加平滑。
高斯低通滤波器可以表示为:
注意平滑的曲线过渡,因此在每个点上,Do的值都可以精确定义。
高斯高通滤波器
高斯高通滤波器的概念与理想高通滤波器相同,但与理想高通滤波器相比,过渡更加平滑。
颜色空间介绍
在本教程中,我们将讨论颜色空间。
什么是颜色空间?
颜色空间是在图像处理和信号系统中用于各种目的的不同类型的颜色模式。一些常见的颜色空间包括:
RGB
CMYK
YUV
YIQ
Y'CbCr
HSV
RGB
RGB是最广泛使用的颜色空间,我们已经在之前的教程中讨论过它。RGB代表红、绿、蓝。
RGB模型指出,每个彩色图像实际上是由三个不同的图像组成的:红色图像、绿色图像和蓝色图像。普通的灰度图像可以用一个矩阵定义,但彩色图像实际上是由三个不同的矩阵组成的。
一个彩色图像矩阵 = 红色矩阵 + 绿色矩阵 + 蓝色矩阵
这在下面的示例中可以最好地看到。
RGB的应用
RGB模型的常见应用包括:
阴极射线管 (CRT)
液晶显示器 (LCD)
等离子显示器或LED显示器,例如电视
计算机显示器或大型屏幕
CMYK
RGB到CMYK转换
RGB到CMYK的转换使用以下方法完成。
假设你有一个彩色图像,这意味着你具有三个不同的红色、绿色和蓝色数组。如果你想将其转换为CMYK,你需要这样做:用最大级别数减1的结果减去每个矩阵,并将结果分别填充到相应的CMYK矩阵中。
YUV
YUV根据一个亮度 (Y') 和两个色度 (UV) 分量定义颜色空间。YUV颜色模型用于以下复合彩色视频标准:
NTSC(国家电视系统委员会)
PAL(相位交替线)
SECAM(Sequential couleur a amemoire,法语,意为“带记忆的顺序彩色”)
Y'CbCr
Y'CbCr颜色模型包含Y'(亮度分量),Cb和Cr是蓝色差和红色差色度分量。
它不是绝对颜色空间。它主要用于数字系统。
其常见应用包括JPEG和MPEG压缩。
Y'UV通常用作Y'CbCr的术语,但它们是完全不同的格式。两者之间的主要区别在于前者是模拟的,而后者是数字的。
JPEG压缩介绍
在我们上一节关于图像压缩的教程中,我们讨论了一些用于压缩的技术。
我们将讨论JPEG压缩,这是一种有损压缩,因为最终会丢失一些数据。
让我们首先讨论什么是图像压缩。
图像压缩
图像压缩是对数字图像进行数据压缩的方法。
图像压缩的主要目标是:
以有效的方式存储数据
以有效的方式传输数据
图像压缩可以是有损的或无损的。
JPEG压缩
JPEG代表联合图像专家组。它是图像压缩的第一个国际标准。它如今被广泛使用。它可以是有损的,也可以是无损的。但我们今天将要讨论的技术是有损压缩技术。
JPEG压缩的工作原理
第一步是将图像分成块,每个块的尺寸为8 x 8。
让我们记录一下,这个8x8图像包含以下值。
像素强度的范围现在是0到255。我们将范围更改为-128到127。
从每个像素值中减去128得到-128到127的像素值。从每个像素值中减去128后,我们得到以下结果。
现在我们将使用此公式进行计算。
结果存储在例如A(j,k)矩阵中。
JPEG压缩使用一个标准矩阵,该矩阵称为亮度矩阵。
此矩阵如下所示
应用以下公式
应用后我们得到这个结果。
现在我们将执行JPEG压缩中使用的真正技巧,即ZIG-ZAG移动。上面矩阵的zig zag序列如下所示。你必须执行zig zag,直到你找到前面全是零为止。因此,我们的图像现在被压缩了。
JPEG压缩总结
第一步是将图像转换为Y'CbCr,只选择Y'通道并将其分解为8 x 8块。然后从第一个块开始,将范围映射到-128到127。之后,你必须找到矩阵的离散傅里叶变换。此结果应进行量化。最后一步是以zig zag的方式应用编码,并执行此操作直到找到所有零。
保存这个一维数组,你就完成了。
注意:你必须对所有8 x 8块重复此过程。
光学字符识别
光学字符识别通常缩写为OCR。它包括将手写、打字文本的扫描图像机械和电气地转换为机器文本。这是将印刷文本数字化的一种常用方法,以便可以对其进行电子搜索、更紧凑地存储、在线显示以及用于机器翻译、文本转语音和文本挖掘等机器过程。
近年来,光学字符识别 (OCR) 技术已应用于各个行业,彻底改变了文档管理流程。OCR使扫描文档不仅仅是图像文件,而是变成了完全可搜索的文档,其文本内容可被计算机识别。借助OCR,人们在将重要文档输入电子数据库时,不再需要手动重新输入。相反,OCR会自动提取相关信息并将其输入。结果是更准确、更高效的信息处理,时间更短。
光学字符识别有多个研究领域,但最常见的领域如下:
银行业务
OCR的用途因不同领域而异。一个广为人知的应用是在银行业务中,OCR用于处理支票而无需人工干预。支票可以插入机器中,其上的文字会立即被扫描,并转移正确的金额。这项技术对于打印支票来说几乎已经完善,对于手写支票也相当准确,尽管偶尔需要人工确认。总的来说,这减少了许多银行的等待时间。
盲人和视障人士
OCR研究开始的主要因素之一是科学家想要制造一台能够大声朗读书籍给盲人听的计算机或设备。在这项研究中,科学家制造了平板扫描仪,我们最常将其称为文档扫描仪。
法律部门
在法律行业,也出现了一场将纸质文件数字化的重大变革。为了节省空间并消除筛选纸质文件盒子的需要,文件被扫描并输入计算机数据库。OCR技术进一步简化了这一流程,使文件可进行文本搜索,以便在数据库中更容易找到和使用它们。法律专业人员现在可以快速、轻松地访问大量电子格式的文件,只需输入几个关键词即可找到它们。
零售行业
条形码识别技术也与OCR相关。我们在日常生活中就能看到这项技术的应用。
其他应用
OCR广泛应用于许多其他领域,包括教育、金融和政府机构。OCR使无数文本能够在线获取,为学生节省了资金,并促进了知识共享。许多企业使用发票影像应用程序来跟踪财务记录,防止付款积压。在政府机构和独立组织中,OCR简化了数据收集和分析等流程。随着技术的不断发展,OCR技术的应用也越来越多,包括手写识别技术的日益普及。
计算机视觉和计算机图形学
计算机视觉
计算机视觉关注的是利用计算机软件和硬件模拟和复制人类视觉。正式定义的话,计算机视觉是一门研究如何根据场景中存在的结构特性,从其二维图像重建、解释和理解三维场景的学科。
为了理解和模拟人类视觉系统的运作,它需要以下领域的知识。
计算机科学
电子工程
数学
生理学
生物学
认知科学
计算机视觉层次结构
计算机视觉分为以下三个基本类别:
低层视觉:包括用于特征提取的图像处理。
中层视觉:包括目标识别和三维场景解释。
高层视觉:包括对场景的概念性描述,例如活动、意图和行为。
相关领域
计算机视觉与以下领域有很大的重叠:
图像处理:它专注于图像操作。
模式识别:它研究各种分类模式的技术。
摄影测量:它关注的是从图像中获取精确的测量结果。
计算机视觉与图像处理
图像处理研究图像到图像的转换。图像处理的输入和输出都是图像。
计算机视觉是从图像中构建对物理对象的明确、有意义的描述。计算机视觉的输出是对三维场景中结构的描述或解释。
应用示例
机器人技术
医学
安全
交通运输
工业自动化
机器人技术应用
定位——自动确定机器人位置
导航
避障
组装(销孔配合、焊接、喷漆)
操作(例如PUMA机器人机械手)
人机交互(HRI):智能机器人与人互动并为人类服务
医学应用
分类和检测(例如病变或细胞分类和肿瘤检测)
二维/三维分割
三维人体器官重建(MRI或超声波)
视觉引导机器人手术
工业自动化应用
工业检测(缺陷检测)
组装
条形码和包装标签读取
物体分拣
文档理解(例如OCR)
安全应用
生物识别技术(虹膜、指纹、面部识别)
监控——检测某些可疑活动或行为
交通运输应用
自动驾驶车辆
安全,例如驾驶员警觉性监控
计算机图形学
计算机图形学是指使用计算机创建的图形,以及计算机对图像数据的表示,特别是借助专门的图形硬件和软件。正式地说,计算机图形学是几何对象(建模)及其图像(渲染)的创建、操作和存储。
计算机图形学领域随着计算机图形学硬件的出现而发展起来。如今,计算机图形学几乎应用于各个领域。许多强大的工具已被开发用于可视化数据。当公司开始在电子游戏中使用计算机图形学时,该领域变得越来越流行。如今,它是一个数十亿美元的产业,也是计算机图形学发展的主要驱动力。一些常见的应用领域如下:
计算机辅助设计(CAD)
演示图形
3D动画
教育和培训
图形用户界面
计算机辅助设计
用于建筑物、汽车、飞机和许多其他产品的的设计。
用于创建虚拟现实系统。
演示图形
通常用于总结财务、统计数据。
用于生成幻灯片。
3D动画
皮克斯、梦工厂等公司在电影行业大量使用。
用于在游戏中添加特效。
教育和培训
物理系统的计算机生成模型。
医学可视化
3D MRI
牙科和骨骼扫描
飞行员等培训模拟器。
图形用户界面
用于制作图形用户界面对象,如按钮、图标和其他组件。