- 数字图像处理
- DIP - 首页
- DIP - 图像处理介绍
- DIP - 信号与系统介绍
- DIP - 摄影史
- DIP - 应用与用途
- DIP - 维度概念
- DIP - 相机成像原理
- DIP - 相机机制
- DIP - 像素概念
- DIP - 透视变换
- DIP - 每像素位数的概念
- DIP - 图像类型
- DIP - 颜色代码转换
- DIP - 灰度到RGB转换
- DIP - 采样概念
- DIP - 像素分辨率
- DIP - 放大概念
- DIP - 放大方法
- DIP - 空间分辨率
- DIP - 像素、点和每英寸点数
- DIP - 灰度分辨率
- DIP - 量化概念
- DIP - ISO 标准曲线
- DIP - 抖动概念
- DIP - 直方图介绍
- DIP - 亮度和对比度
- DIP - 图像变换
- DIP - 直方图滑动
- DIP - 直方图拉伸
- DIP - 概率论介绍
- DIP - 直方图均衡化
- DIP - 灰度变换
- DIP - 卷积概念
- DIP - 掩码概念
- DIP - 模糊概念
- DIP - 边缘检测概念
- DIP - Prewitt算子
- DIP - Sobel算子
- DIP - Robinson 罗盘掩膜
- DIP - Krisch 罗盘掩膜
- DIP - Laplacian算子
- DIP - 频域分析
- DIP - 傅里叶级数和变换
- DIP - 卷积定理
- DIP - 高通滤波器与低通滤波器
- DIP - 颜色空间介绍
- DIP - JPEG压缩
- DIP - 光学字符识别
- DIP - 计算机视觉与图形学
- DIP 有用资源
- DIP - 快速指南
- DIP - 有用资源
- DIP - 讨论
数字图像处理 - 放大方法
在本教程中,我们将正式介绍三种放大方法,这些方法在“放大介绍”教程中已介绍。
放大方法
- 像素复制或(最近邻插值)
- 零阶保持法
- K倍放大
每种方法都有其自身的优点和缺点。我们将首先讨论像素复制。
方法一:像素复制
介绍
它也称为最近邻插值。顾名思义,在这种方法中,我们只需复制相邻像素。正如我们在采样教程中已经讨论过的那样,放大只不过是增加样本或像素的数量。此算法基于相同的原理。
工作原理
在这种方法中,我们根据已给定的像素创建新的像素。此方法中每个像素按行和列复制n次,即可获得放大的图像。就这么简单。
例如
如果您有一张2行2列的图像,并且想要使用像素复制将其放大两倍或2倍,则可以按如下方式进行。
为了更好地理解,图像以矩阵的形式呈现,其中包含图像的像素值。
| 1 | 2 |
| 3 | 4 |
上图有2行2列,我们首先按行放大。
按行放大
当我们按行放大时,我们将简单地将行的像素复制到其相邻的新单元格。
操作方法如下。
| 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倍放大算法的一个明显的优点是它能够计算任何倍数的放大,这是像素复制算法的能力,它也提供了改进的结果(更清晰),这是零阶保持法的能力。因此,它包含了这两种算法的能力。
该算法的唯一困难是最终必须进行排序,这是一个额外的步骤,因此增加了计算成本。