图像处理
在计算机科学中,数字图像处理是使用计算机算法对数字图像执行图像处理。[1]作为数字信号处理的子类别或领域,数字图像处理与模拟图像处理相比具有许多优点。它允许将更广泛的算法应用于输入数据,并且可以避免诸如处理期间噪声和信号失真的累积等问题。由于图像是在两个维度(可能更多)上定义的,因此可以以多维系统的形式对数字图像处理进行建模。
内容
历史[ 编辑]
许多数字图像处理技术或数字图像处理技术在20世纪60年代由喷气推进实验室,麻省理工学院,贝尔实验室,马里兰大学和其他一些研究机构开发,应用于卫星图像,线照标准转换,医学成像,可视电话,字符识别和照片增强。[2] 然而,随着那个时代的计算设备,处理成本相当高。
这种情况在20世纪70年代发生了变化,当数字图像处理随着更便宜的计算机和专用硬件的推出而激增时。然后可以实时处理图像,用于一些专门的问题,例如电视标准转换。随着通用计算机变得更快,他们开始接管专用硬件的角色,除了最专业和计算机密集型操作。随着2000年代可用的快速计算机和信号处理器,数字图像处理已经成为最常见的图像处理形式,并且通常被使用,因为它不仅是最通用的方法,而且也是最便宜的。
医疗应用的数字图像处理技术于1994年被引入太空基金会空间技术名人堂。[3]
任务[ 编辑]
数字图像处理允许使用更复杂的算法,因此,可以在简单的任务中提供更复杂的性能,并且通过模拟方式实现不可能的方法。
特别是,数字图像处理是唯一实用的技术:
一些用于数字图像处理的技术包括:
数字图像转换[ 编辑]
过滤[ 编辑]
数字滤波器用于模糊和锐化数字图像。过滤可以通过以下方式执行:
以下示例显示了两种方法:[5]
过滤器类型 |
内核或面具 |
例 |
原始图像 |
{\ displaystyle {\ begin {bmatrix} 0&0&0 \\ 0&1&0 \\ 0&0&0 \ end {bmatrix}}} |
|
{\ displaystyle {\ frac {1} {9}} \ times {\ begin {bmatrix} 1&1&1 \\ 1&1&1 \\ 1&1&1 \ end {bmatrix}}} |
||
{\ displaystyle {\ begin {bmatrix} 0&-1&0 \\ - 1&4&-1 \\ 0&-1&0 \ end {bmatrix}}} |
||
伪代码: image =棋盘格 F =图像的傅立叶变换 显示图片:log(1 +绝对值(F)) |
||
傅立叶低通 |
程序代写接单群733065427 | |
傅立叶高通 |
傅立叶域过滤中的图像填充[ 编辑]
图像通常在转换为傅里叶空间之前进行填充,下面的高通滤波图像说明了不同填充技术的结果:
零填充 |
重复边缘填充 |
请注意,与重复边缘填充相比,高通滤波器在填充零时显示额外边缘。
过滤代码示例[ 编辑]
空间域高通滤波的MATLAB示例。
img = 棋盘(20 ); %生成棋盘
%**************************空间域****************** *********
klaplace = [ 0 - 1 0 ; - 1 5 - 1 ; 0 - 1 0 ]; %拉普拉斯滤波器内核
X = conv2 (img ,klaplace ); %convolve test img with
%3x3 Laplacian kernel
figure ()
imshow (X ,[]) %show Laplacian filtered
标题('拉普拉斯边缘检测' )
仿射变换[ 编辑]
仿射变换可实现基本图像变换,包括缩放,旋转,平移,镜像和剪切,如以下示例所示:[6]
转型名称 |
仿射矩阵 |
例 |
{\ displaystyle {\ begin {bmatrix} 1&0&0 \\ 0&1&0 \\ 0&0&1 \ end {bmatrix}}} |
||
{\ displaystyle {\ begin {bmatrix} -1&0&0 \\ 0&1&0 \\ 0&0&1 \ end {bmatrix}}} |
||
{\ displaystyle {\ begin {bmatrix} c_ {x} = 2&0&0 \\ 0&c_ {y} = 1&0 \\ 0&0&1 \ end {bmatrix}}} |
||
{\ displaystyle {\ begin {bmatrix} \ cos(\ theta)&\ sin(\ theta)&0 \\ - \ sin(\ theta)&\ cos(\ theta)&0 \\ 0&0&1 \ end {bmatrix}}} |
其中θ = π/6 = 30° |
|
{\ displaystyle {\ begin {bmatrix} 1&c_ {x} = 0.5&0 \\ c_ {y} = 0&1&0 \\ 0&0&1 \ end {bmatrix}}} |
为了将仿射矩阵应用于图像,将图像转换为矩阵,其中每个条目对应于该位置处的像素强度。然后,每个像素的位置可以表示为指示图像中该像素的坐标的向量,[x,y],其中x和y是图像矩阵中像素的行和列。这允许坐标乘以仿射变换矩阵,该矩阵给程序代写接单群733065427出将在输出图像中复制像素值的位置。
但是,为了允许需要平移变换的变换,需要3维齐次坐标。第三维通常设置为非零常数,通常为1,因此新坐标为[x,y,1]。这允许坐标向量乘以3乘3矩阵,从而实现平移移位。所以第三个维度,即常数1,允许翻译。
因为矩阵乘法是关联的,所以通过按照完成变换的顺序将每个单独变换的矩阵相乘,可以将多个仿射变换组合成单个仿射变换。这导致单个矩阵,当应用于点矢量时,其给出与依次对矢量[x,y,1]执行的所有单独变换相同的结果。因此,仿射变换矩阵序列可以简化为单个仿射变换矩阵。
例如,2维坐标仅允许围绕原点(0,0)旋转。但是,3维齐次坐标可用于首先将任何点转换为(0,0),然后执行旋转,最后将原点(0,0)转换回原始点(与第一次转换相反)。这3个仿射变换可以组合成单个矩阵,从而允许围绕图像中的任何点旋转。[7]
应用[ 编辑]
数码相机图像[ 编辑]
数码相机通常包括专用数字图像处理硬件 - 专用芯片或其他芯片上的附加电路 - 将原始数据从其图像传感器转换为标准图像文件格式的色彩校正图像。
电影[ 编辑]
Westworld(1973)是第一部使用数字图像处理来对像素进行像素化以模拟机器人视角的故事片。[8]