CN109993693B - 用于对图像进行插值的方法和装置 - Google Patents
用于对图像进行插值的方法和装置 Download PDFInfo
- Publication number
- CN109993693B CN109993693B CN201711473491.1A CN201711473491A CN109993693B CN 109993693 B CN109993693 B CN 109993693B CN 201711473491 A CN201711473491 A CN 201711473491A CN 109993693 B CN109993693 B CN 109993693B
- Authority
- CN
- China
- Prior art keywords
- pixel
- interpolation
- interpolation point
- preset edge
- preset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000003491 array Methods 0.000 claims description 27
- 230000015654 memory Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 101000966782 Homo sapiens Lysophosphatidic acid receptor 1 Proteins 0.000 description 4
- 101000693265 Homo sapiens Sphingosine 1-phosphate receptor 1 Proteins 0.000 description 4
- 102100040607 Lysophosphatidic acid receptor 1 Human genes 0.000 description 4
- 102100025750 Sphingosine 1-phosphate receptor 1 Human genes 0.000 description 4
- 238000003708 edge detection Methods 0.000 description 4
- 230000003321 amplification Effects 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/403—Edge-driven scaling; Edge-based scaling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/12—Indexing scheme for image data processing or generation, in general involving antialiasing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
本申请公开了一种用于对图像进行插值的方法,所述图像包括由多个像素点组成的像素阵列,所述方法包括:确定插值点相对于所述像素阵列的位置;基于与所述插值点相邻的多个像素点的像素值,确定所述像素阵列在所述插值点位置的边缘方向在多个预设边缘方向上的权重;对于所述多个预设边缘方向中的每一个预设边缘方向,从所述像素阵列中选取对应的覆盖所述插值点的一个或多个像素子阵列来计算所述插值点的插值像素值;以及基于所述像素阵列在所述插值点位置的边缘方向在多个预设边缘方向上的权重和所述多个预设边缘方向中的每一个预设边缘方向对应的所述插值点的插值像素值,计算所述插值点的加权的插值像素值。
Description
技术领域
本申请涉及图像处理技术领域,更具体地,涉及一种用于对图像进行插值的方法和装 置。
背景技术
在手机、平板电脑、计算机或数字电视显示中,经常需要使用图像缩放算法对图像进 行处理。例如,在对图像进行放大的过程中,需要使用插值算法,用于计算图像放大后缺失的像素。
现有技术中广泛使用的插值算法包括最近邻元法、双线性内插法、三次内插法等,但 使用这些方法获得的放大图像的锯齿现象明显。
发明内容
本申请的一个目的在于提供一种用于对图像进行插值的方法和装置,能够在放大图像 时减弱锯齿现象和减少人工痕迹。
在本申请的一个方面,提供了一种用于对图像进行插值的方法,所述图像包括由多个 像素点组成的像素阵列,所述方法包括:确定插值点相对于所述像素阵列的位置;基于与 所述插值点相邻的多个像素点的像素值,确定所述像素阵列在所述插值点位置的边缘方向 在多个预设边缘方向上的权重;对于所述多个预设边缘方向中的每一个预设边缘方向,从 所述像素阵列中选取对应的覆盖所述插值点的一个或多个像素子阵列来计算所述插值点 的插值像素值;以及基于所述像素阵列在所述插值点位置的边缘方向在多个预设边缘方向 上的权重和所述多个预设边缘方向中的每一个预设边缘方向对应的所述插值点的插值像 素值,计算所述插值点的加权的插值像素值。
在本申请的另一方面,还提供了一种用于对图像进行插值的装置,所述图像包括由多 个像素点组成的像素阵列,所述装置包括:处理器;存储器,所述存储器中存储有能够在 所述处理器上运行的程序指令,并且当所述程序指令在所述处理器上运行时,使得所述处 理器:确定插值点相对于所述像素阵列的位置;基于与所述插值点相邻的多个像素点的像 素值,确定所述像素阵列在所述插值点位置的边缘方向在多个预设边缘方向上的权重;对 于所述多个预设边缘方向中的每一个预设边缘方向,从所述像素阵列中选取对应的覆盖所 述插值点的一个或多个像素子阵列来计算所述插值点的插值像素值;以及基于所述像素阵 列在所述插值点位置的边缘方向在多个预设边缘方向上的权重和所述多个预设边缘方向 中的每一个预设边缘方向对应的所述插值点的插值像素值,计算所述插值点的加权的插值 像素值。
以上为本申请的概述,可能有简化、概括和省略细节的情况,因此本领域的技术人员 应该认识到,该部分仅是示例说明性的,而不旨在以任何方式限定本申请范围。本概述部 分既非旨在确定所要求保护主题的关键特征或必要特征,也非旨在用作为确定所要求保护 主题的范围的辅助手段。
附图说明
通过下面说明书和所附的权利要求书并与附图结合,将会更加充分地清楚理解本申请 内容的上述和其他特征。可以理解,这些附图仅描绘了本申请内容的若干实施方式,因此 不应认为是对本申请内容范围的限定。通过采用附图,本申请内容将会得到更加明确和详 细地说明。
图1示出了一图像的像素点组成的像素阵列100;
图2示出了根据本申请一个实施例的用于对图像进行插值的方法的流程图;
图3示出了根据本申请一个实施例的像素阵列200;
图4示出了根据本申请一个实施例的确定像素阵列在插值点位置的边缘方向在多个预 设边缘方向上的权重的流程图;
图5示出了根据本申请一个实施例的与插值点相邻的多个像素点的示意图;
图6示出了根据本申请一个实施例的从像素阵列中选取的像素子阵列形状的示意图;
图7示出了根据本申请一个实施例的从像素子阵列来计算插值点的插值像素值的示意 图;
图8示出了根据本申请一个实施例的用于对图像进行插值的装置的示意图。
具体实施方式
在下面的详细描述中,参考了构成其一部分的附图。在附图中,类似的符号通常表示 类似的组成部分,除非上下文另有说明。详细描述、附图和权利要求书中描述的说明性实 施方式并非旨在限定。在不偏离本申请的主题的精神或范围的情况下,可以采用其他实施 方式,并且可以做出其他变化。可以理解,可以对本申请中一般性描述的、在附图中图解说明的本申请内容的各个方面进行多种不同构成的配置、替换、组合,设计,而所有这些 都明确地构成本申请内容的一部分。
首先,结合图1对多相位插值算法进行介绍,图1示出了一图像的像素点组成的像素 阵列100,x和y轴方向的直线的每个交叉表示该图像的一个现有像素点。(i,j)表示坐标为 i,j的现有像素点,图1中以圆点表示;(x,y)表示需要进行插值的像素点位置,图1中以圆圈表示,其到像素点(i,j)的水平距离为v,竖直距离为u。在图1所示的例子中,使用4×4个 现有像素作为输入,计算插值点的像素值。具体地,以(i+u,j+v)表示当前插值点位置的坐 标,则插值结果f(i+u,j+v)可以使用下面的公式(1)计算:
其中,矩阵[B]为输入的4×4个现有像素点的像素值,[A]和[C]矩阵是每个现有像素点在水 平和垂直方向上的权重。三个矩阵相乘相当于对[B]中的每个像素值乘以两个方向上的权重 后再相加。例如,对于像素点(i,j),其在两个方向上到插值点位置的距离分别为u和v,从 而其像素值与权重系数S(u+0)和S(v+0)相乘;对应的,像素点(i-1,j-1)的像素值对应的权重 为S(u+1)和S(v+1),以此类推。函数S(x)为多相位插值算法的核函数,用于根据每个现有 像素点到插值点位置的距离计算得到对应的权重,下面的公式(2)给出一个核函数S(x) 的示例。不同的应用场景中可以选择不同的核函数,但基本思想是现有像素点距离插值点 越近则权重越大。
本申请的发明人经过研究发现,与最近邻元法、双线性内插法相比,上述的多相位插 值算法使用插值点位置周围更多的像素点作为输入,能够减小放大图像中的锯齿现象,但 在放大倍数较大时依旧能看到明显锯齿。虽然可以通过选用不同的核函数使边缘模糊来改 善锯齿,但很难同时兼顾锯齿和图像的清晰度。另外,一些基于边缘检测的算法通过检测 输入图像的边缘方向以选用不同的插值算法来减小锯齿,例如,通过使用canny算子来检 测图像中的边缘方向,根据检测结果使用双线性插值或其他方式得到输出图像。然而canny 算子计算复杂并且在图像复杂区域难以得到准确的结果,另外,基于边缘方向的双线型插 值每次只能使图像放大一倍,在放大倍数大时需要多次放大。
基于此,本申请提供了一种通过检测图像中边缘方向来融合不同像素子阵列的插值结 果的插值方法。该方法可以计算图像在插值点位置的边缘方向与多个预设边缘方向的趋近 程度,而不是试图计算出一个准确的边缘方向,避免了边缘检测误差所造成的输出图像失 真;另外,该方法在每个插值位置使用多个不同的像素子阵列计算多个插值像素值,并对 多个插值结果进行融合,而不是对每个插值位置寻求使用最合适的子阵列得到插值结果, 或对同一个像素子阵列使用不同的插值算法,从而可以避免在图像边缘变化剧烈区域产生 人工痕迹。
下面结合图2对本申请实施例的用于对图像进行插值的方法进行详细说明。图2示出 了根据本申请一实施例用于对图像进行插值的方法的流程图,该方法可以在对图像进行缩 放的过程中计算插值。
图3示出了根据本申请一实施例的需要进行放大的图像200的示意图。如图3所示,该图像200为二维位图图像,包括以圆点示出的多个像素点组成的像素阵列,每个像素点都具有特定的位置。该图像200可以为灰度图像,或采用RGB、CMYK或其他适宜的编 码格式进行编码的彩色图像,每个像素点都具有特定的灰度值或颜色通道值。
在一些实施例中,可以使用图2所示的用于对图像进行插值的方法,对图3所示的图 像200进行插值。以下描述中,在没有特殊说明的情况下,像素值表示灰度值或各颜色通道的值,不再进行区分。本领域技术人员应当理解,在对彩色图像进行插值时,需要分别 针对各颜色通道进行插值。
如图2所示,在步骤S202中,确定插值点相对于像素阵列的位置。
在对二维图像进行放大的过程中,通常需要在水平方向和垂直方向上对图像进行插值。 例如,如果要将水平和垂直方向为360×640像素阵列的图像放大到720×1280,这就需要 对图像分别在水平方向插入额外的360行像素和在垂直方向上插入额外的640列像素,即 在原来没有像素点的位置插入新的像素点,形成新的图像。因此,在确定插值点相对于像 素阵列的位置时,需要结合图像的放大倍数和插值处理在各行和各列的处理顺序。以图3 为例,图像200中的点X被确定为当前插值点的位置,以圆圈表示。
接着,在步骤S204中,基于与插值点相邻的多个像素点的像素值,确定像素阵列在该插值点位置的边缘方向在多个预设边缘方向上的权重。
在步骤S204中,基于与当前插值点相邻的多个像素点的像素值,确定像素阵列在该 插值点位置的边缘方向在多个预设边缘方向上的权重,而并不是给出一个确定的边缘方向 角度,可以有效减少或避免边缘检测误差所造成的图像失真。
在一些实施例中,如图4所示,步骤S204包括子步骤S204a-S204c。
具体地,在步骤S204a中,将与插值点相邻的多个像素点划分为多个像素单元。
在一些实施例中,与插值点相邻的多个像素点是指像素阵列中与插值点距离最近的多 个现有像素点,这些像素点通常构成一个正方形阵列。例如,如图5所示,选择插值点X周围的4×4个像素点用于边缘检测。需要说明的是,在其他实施例中,基于具体的应用场景,并结合计算量和放大倍数,也可以使用更多或更少的像素点。
接着,这些与插值点相邻的多个像素点再被划分为多个像素单元,如图5所示,像素 点abcd被划分为一个像素单元,像素点bd与其右侧的两个像素点又被划分为另一个像素 单元,像素点cd与其下方的两个像素点又被划分为另一个像素单元,以此类推,图5中的4×4个像素点可以被划分为3×3个像素单元。本实施例中,每个像素单元中包含4个像素点,但在其他实施例中,基于计算量和选取的与插值点相邻的像素点数量,进行划分后, 每个像素单元也可以包含其他数量的像素点。
接着,在步骤S204b中,计算多个像素单元中每个像素单元的边缘方向在多个预设边 缘方向上的权重分量。
通常预设边缘方向选取的数量越多,最终输出的图像边缘会越平滑,但由于每种预设 边缘方向都需要对应的插值计算方法,所以计算量也会加大。在一实施例中,如图5所示, 选取-45°方向、0°方向、45°方向和90°方向作为4个预设边缘方向,可以满足大部分应用 场景。当然,在其他实施例中,为了使输出图像边缘更平滑,可以使用6个、8个或更多 个的预设边缘方向。
为了计算多个像素单元中每个像素单元的边缘方向在多个预设边缘方向上的权重分 量,首先计算每个像素单元的边缘方向。继续以图5为例,若每个像素点的像素深度为8 位,即以8位二进制数表示灰度值或各颜色深度值,对于像素单元abcd,其边缘方向角度A的正切值可以通过下面的公式(3)获得:
tan(A)=-128×(b+d-a-c)/(c+d-a-b) 公式(3);
其中,a、b、c、d表示对应像素点的像素值,则(b+d-a-c)表示像素单元abcd的水平方向梯度、(c+d-a-b)表示像素单元abcd的垂直方向梯度;系数-128基于像素点的像 素深度确定,在不同颜色深度的图像中,可以取不同值。
对上述正切值通过反正切函数求值即可得到像素单元abcd的边缘方向的角度A。在一 具体实施例中,可以采用下面的公式(4)计算,其为反正切函数的近似函数。需要说明的是,公式(4)只给出了0到1023的输入范围,但由于函数arctan(x)关于原点对称, 对于-1023到0的输入直接将其对应正值的输出取负值作为输出即可。因此,公式(4)适 用于输入范围为-1023到1023,输出范围为-256到256,对应角度为-90°到90°。
其中,算符“>>7”表示计算结果右移7位。需要说明的是,公式(4)中的常数与计算结果 移动的位数与像素点的像素深度有关,在不同实施例中可能不同。
在使用公式(3)和(4)获得图5中9个像素单元的边缘方向的角度后,接着计算每个像素单元的边缘方向在多个预设边缘方向(例如,-45°方向、0°方向、45°方向和90°方向)上的权重分量。在一些实施例中,使用公式(5)计算各个像素单元的边缘方向在预 设边缘方向上的权重分量:
edg(i)=fw(|acctan(x)-k|)×edg_deg×vert_coeff×hori_coeff>>23公式(5); 其中,fw为近似高斯函数,arctan(x)对应当前像素单元的边缘方向,k对应当前使用的预 设边缘方向;edg_deg为该像素单元的边缘剧烈程度,以图5中的像素单元abcd为例,边 缘剧烈程度为|b+d-a-c|与|c+d-a-b|中的较大值;算符“>>23”表示计算结果右移 23位;vert_coeff和hori_coeff为根据当前插值点位置确定的竖直方向和水平方向的权重系数。
在一些实施例中,vert_coeff和hori_coeff使用上文的多相位插值算法中的公式(2) 来获得。对应于图1中的4×4的像素阵列,此处以3×3个像素单元在一预设边缘方向上的 权重分量作为输入,计算竖直方向和水平方向的权重系数vert_coeff和hori_coeff。类似地, vert_coeff和hori_coeff也可以采用其他算法进行计算,但基本思想是像素单元距离插值点 位置越近则权重越大。
在一些实施例中,近似高斯函数使用公式(6)表示:
其中,算符“>>3”表示计算结果右移3位。
针对不同的预设边缘方向,公式(5)中k的取值不同。根据公式(4)的近似反正切函数,其输出范围为-256到256,对应角度为-90°到90°;则在该范围内-128对应-45°, 因此,公式(5)中k取-128表示计算和预设边缘方向-45°的差异。类似地,预设边缘方 向45°对应的k取值为128,预设边缘方向0°对应的k取值为0,预设边缘方向90°对 应的k取值为|acctan(x)-256|与|acctan(x)+256|中的较小值。本领域技术人员应当理解, 公式(5)和(6)中k的取值、常数值和计算结果的移动位数也均与像素点的像素深度有 关,在不同实施例中可能不同。
接着,在步骤S204c中,基于多个像素单元中每个像素单元的边缘方向在多个预设边 缘方向上的权重分量,确定像素阵列在插值点位置的边缘方向在多个预设边缘方向上的权 重。
具体地,由于在前述步骤S204b中已经计算了所有9个像素单元在各个预设边缘方向 (即,-45°方向、0°方向、45°方向和90°方向)上的权重分量,本步骤S204c中,将9个 像素单元在某个特定预设边缘方向上的权重分量相加,即可得到像素阵列在插值点位置的 边缘方向在该预设边缘方向上的权重。换句话来说,完成对各个像素单元对应的权重分量 的计算后需要融合所有像素单元的结果;由公式(5)可以看出,融合时的权重由两部分 组成,离当前插值点位置越近的像素单元的权重越大(即,vert_coeff和hori_coeff越大), 边缘剧烈程度越大的像素单元权重越大(即,edg_deg越大);其中,每个像素单元的距 离直接由该像素单元的中心到当前插值点位置得到,而边缘剧烈程度可以用该像素单元两 个方向上梯度的较大值表示。
以图5为例,步骤S204c可计算获得像素阵列200在插值点X的边缘方向在4个预设边缘方向-45°、45°、0°和90°的4个权重值edg0,edg1,edg2和edg3。
回到图2,继续执行步骤S206,对于多个预设边缘方向中的每一个预设边缘方向,从 像素阵列中选取对应的覆盖插值点的一个或多个像素子阵列来计算插值点的插值像素值。
在一些实施例中,对于多个预设边缘方向中的每一个预设边缘方向,从像素阵列中选 取对应的覆盖插值点的一个或多个像素子阵列的边界构成平行四边形,并且平行四边形的 第一组相对边与预设边缘方向平行。与现有技术中仅使用正方形或长方形的区域的像素子 阵列进行插值的方法相比,本申请实施例对像素子阵列的选取考虑了预设边缘方向的角度, 包括多种不同形状的像素子阵列,有利于减少插值误差。
继续以预设边缘方向为-45°、0°、45°和90°为例,对从像素阵列中选取对应的覆盖插 值点的一个或多个像素子阵列进行说明。例如,从像素阵列中选取的像素子阵列与图6所 示的5个平行四边形对应。倾斜的预设边缘方向角度包括-45°和45°,对于它们,偏向水平 和偏向竖直的边缘方向需要使用两种不同的像素子阵列。例如,对于预设边缘方向角度为 45°,选择与图6中(a)和(c)的平行四边形对应的像素子阵列;(a)和(c)的一组相 对边与预设边缘方向角度平行,即也为45°;(a)和(c)的另外一组相对边分别平行于 水平方向和竖直方向。类似地,对于预设边缘方向角度为-45°,选择与图6中(b)和(d) 的平行四边形对应的像素子阵列。对于预设边缘方向角度为0°和90°,选择与图6中(e) 的正方形对应的像素子阵列。
由于预设边缘方向的角度越接近于垂直方向时,对应像素子阵列需要覆盖垂直方向上 的更多行,导致需要更多的行内存,因此在一些实施例中预设边缘方向的角度仅使用-45°、 0°、45°和90°四种,对应选取与图6所示的5个平行四边形像素子阵列。在其他实施例中, 根据具体应用场景,选择其他数量的边缘方向时,则需要选择其他适宜形状的像素子阵列。 但需要说明的是,由于插值计算中的输入必须在插值方向上均匀分布并且为原始图像像素 阵列上的像素点,因此非矩形像素子阵列所对应的平行四边形区域的斜边需要在每一行/ 列上经过输入像素阵列上的像素点,否则插值计算过程中输入的像素点本身就是一个待插 值的点。因此,非矩形像素子阵列斜边的倾斜角度只能为arctan(n)和arctan(1/n),其中n 为任意整数。
在对应每一个预设边缘方向,从像素阵列中选取对应的覆盖插值点的像素子阵列之后, 就可以基于所选择的像素子阵列来计算插值点的插值像素值。具体地,在每个像素子阵列 中,沿与平行四边形的上述的第一组相对边不同的第二组相对边的方向,计算每一行或列 的像素在与插值点位置对应的位置的插值像素值;基于每一行或列的像素在与插值点位置 对应的位置的插值像素值,计算插值点的插值像素值。其中,与插值点位置对应的位置是 指沿预设边缘方向穿过插值点的直线与该行或列的交点的位置。
参考图7(a),其示出了对应于图6(a)所示的平行四边形的像素子阵列,其中,沿预设边缘方向穿过插值点的直线(在7(a)中以虚线示出)与该像素子阵列中4个行相交, 首先计算这4行像素与该直线交点位置的水平插值结果,再使用这4个水平插值结果计算 在该直线的插值点位置的插值像素值。对应地,参考图7(b),对应于图6(c)所示的平 行四边形的像素子阵列,沿预设边缘方向穿过插值点的直线(在7(b)中以虚线示出)与 该像素子阵列中4个列相交,首先计算这4列像素与该直线交点位置的竖直插值结果,再 使用这4个竖直插值结果计算在该直线的插值点位置的插值像素值。其他三种像素子阵列 的计算方法与此类似,在此不再赘述。计算结束后可以获得对应于图6所示的5个像素子 阵列的插值像素值。
继续参考图2,执行步骤S208,基于该像素阵列在插值点位置的边缘方向在多个预设 边缘方向上的权重和多个预设边缘方向中的每一个预设边缘方向对应的插值点的插值像 素值,计算插值点的加权的插值像素值。
在步骤S204和步骤S206中分别计算了像素阵列在插值点位置的边缘方向在多个预设 边缘方向上的权重以及对应每一个预设边缘方向的该插值点的插值像素值,则对上述结果 进行加权融合后,即可获得该插值点的加权的插值像素值。
具体地,在一些实施例中,首先基于该像素阵列在插值点位置的边缘方向在多个预设 边缘方向上的权重计算与每一个像素子阵列对应的插值像素值的权重,再基于每一个像素 子阵列的插值像素值及其对应的权重计算该插值点的加权的插值像素值。
继续以预设边缘方向-45°、0°、45°和90°为例,图6中的每一个像素子阵列对应的插 值像素值的权重可以通过公式(7)计算:
其中,edg0,edg1,edg2和edg3为像素阵列在插值点的边缘方向在4个预设边缘方向-45°、 45°、0°和90°的4个权重值;w1,w2,w3,w4和w5为图5中的每一个像素子阵列对应的插值像素值的权重值;并且,
其中,公式(8)的作用是当两个输入edg0和edg1(或edg2和edg3)越接近时输出越小, 相同时输出thr,而两个输入差异越大时输出越大。其中,thr越大,f(x)的输出也越大,基于边缘或者说基于非正方形的像素子阵列计算获得的插值像素值的权重也会越大;从而可以认为thr控制最后加权的插值像素值结果更倾向于考虑边缘方向还是更倾向于传统的多相位插值计算方式。在一些实施例中,thr取值为128时,能得到较好的效果。
可以看出,wedg为图6中(a)、(b)、(c)和(d)对应的插值像素值权重的和, 其计算思想是,如果在步骤S204中获得的像素阵列在当前插值点位置的边缘方向对±45° 的接近程度都很大,或对0/90°的接近程度都很大,说明对该边缘方向的判断不准确,更 倾向于使用通过图6(e)计算获得的插值像素值;而当对该边缘方向判断准确的时候,更 多的使用通过图6的(a)、(b)、(c)和(d)计算获得的插值像素值。因此,计算出 wedg后将其分配给与图6的(a)、(b)、(c)和(d)对应的w1,w2,w3和w4,而 剩余权重分配给与图6的(e)对应的w5。w1对应的像素子阵列适合的边缘方向在-45° -0°之间,因此其权重用-45°和0°的权重(edg0和edg2)除以45°和90°的权重(edg1和 edg3)得到。w2,w3和w4的计算方法与此类似,在此不再赘述。
接着,基于每一个像素子阵列的插值像素值与插值像素值的权重通过公式(9)该插 值点的加权的插值像素值:
OUT=(wedg)×(w1×out1+w2×out2+w3×out3+w4×out4)/(w1+w2+w3+w4)+w5×out5>>8 公式(9)
其中,OUT表示插值点的加权的插值像素值,算符“>>8”输出结果右移8位。
虽然上文以预设边缘方向-45°、0°、45°和90°为例对步骤S208进行说明,但应当理解 的是,其计算思想也适用于其他的预设边缘方向。换句话来说,如果像素阵列在插值点位 置的边缘方向对一像素子阵列对应的预设边缘方向的接近程度越大,则该像素子阵列对应 的插值像素值的权重也越大;但由于对图像复杂区域及噪声大的区域的边缘方向检测会有 一定的误差,因此希望只在对边缘方向检测结果有信心的区域增大对使用非矩形像素子阵 列获得的插值像素值的权重,而对没有信心的区域则更多的使用矩形或正方形像素子阵列 获得的插值像素值。由于边缘方向检测结果是真实的边缘方向对各个预设边缘方向的接近 程度,即检测结果为相对于各个预设边缘方向的权重,可以认为真实边缘方向是在权重最 大的两个预设边缘方向之间;因此每个像素子阵列的插值像素值对应的权重可以用其对应 的预设边缘方向的权重乘以与其相邻的权重大的那个预设边缘方向的权重,再除以其他预 设边缘方向的权重来获得;最后将所有权重归一化作为各个插值像素值结果的系数。需要 说明的是,虽然上文的权重计算策略可应用于不同数量的预设边缘方向,但为了得到更好 的结果,当选取不同数量的预设边缘方向时,可以对权重计算策略优化设计。
参考图8,图8示出了根据本申请一实施例用于对图像进行插值的装置800的示意图。 在一些实施例中,该装置可以用于对图3所示的包括由多个像素点组成的像素阵列的图像 进行插值。
如图8所示,该装置800包括:处理器802和存储器804;存储器802中存储有能够 在处理器804上运行的程序指令,并且当该程序指令在处理器804上运行时,使得处理器 804能够执行以下步骤:确定插值点相对于该像素阵列的位置;基于与该插值点相邻的多 个像素点的像素值,确定该像素阵列在该插值点位置的边缘方向在多个预设边缘方向上的 权重;对于多个预设边缘方向中的每一个预设边缘方向,从该像素阵列中选取对应的覆盖 该插值点的一个或多个像素子阵列来计算该插值点的插值像素值;以及基于该像素阵列在该插值点位置的边缘方向在多个预设边缘方向上的权重和该多个预设边缘方向中的每一个预设边缘方向对应的插值点的插值像素值,计算该插值点的加权的插值像素值。
在一些实施例中,基于与该插值点相邻的多个像素点的像素值,确定该像素阵列在该 插值点位置的边缘方向在多个预设边缘方向上的权重包括:将与该插值点相邻的多个像素 点划分为多个像素单元;计算该多个像素单元中每个像素单元的边缘方向在多个预设边缘 方向上的权重分量;基于多个像素单元中每个像素单元的边缘方向在所述多个预设边缘方 向上的权重分量,确定该像素阵列在该插值点位置的边缘方向在多个预设边缘方向上的权 重。
在一些实施例中,该像素单元的边缘方向在多个预设边缘方向上的权重分量与该像素 单元相对所述插值点位置的距离以及该像素单元的边缘方向的剧烈程度相关。
在一些实施例中,多个预设边缘方向包括-45°方向、0°方向、45°方向和90°方向。
在一些实施例中,对于多个预设边缘方向中的每一个预设边缘方向,从该像素阵列中 选取对应的覆盖该插值点的一个或多个像素子阵列的边界构成平行四边形,并且该平行四 边形的第一组相对边与该预设边缘方向平行。
在一些实施例中,对于多个预设边缘方向中的每一个预设边缘方向,从该像素阵列中 选取对应的覆盖该插值点的一个或多个像素子阵列来计算该插值点的插值像素值,包括: 在每个所述像素子阵列中,沿与该平行四边形的第一组相对边不同的第二组相对边的方向, 计算每一行或列的像素在与该插值点位置对应的位置的插值像素值;基于每一行或列的像 素在与该插值点位置对应的位置的插值像素值,计算与该插值点的插值像素值。
在一些实施例中,基于该像素阵列在该插值点位置的边缘方向在多个预设边缘方向上 的权重和多个预设边缘方向中的每一个预设边缘方向对应的该插值点的插值像素值,计算 该插值点的加权的插值像素值,包括:基于该像素阵列在该插值点位置的边缘方向在多个 预设边缘方向上的权重计算与每一个像素子阵列对应的插值像素值的权重;基于每一个像 素子阵列的插值像素值与该插值像素值的权重计算该插值点的加权的插值像素值。
应当注意,尽管在上文详细描述中提及了用于对图像进行插值的方法的若干步骤,和 用于对图像进行插值的装置的若干模块,但是这种划分仅仅是示例性的而非强制性的。实 际上,根据本申请的实施例,上文描述的两个或更多模块的特征和功能可以在一个模块中 具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
那些本技术领域的一般技术人员可以通过研究说明书、公开的内容及附图和所附的权 利要求书,理解和实施对披露的实施方式的其他改变。在权利要求中,措词“包括”不排 除其他的元素和步骤,并且措辞“一”、“一个”不排除复数。在本申请的实际应用中, 一个零件可能执行权利要求中所引用的多个技术特征的功能。权利要求中的任何附图标记不应理解为对范围的限制。
Claims (14)
1.一种用于对图像进行插值的方法,所述图像包括由多个像素点组成的像素阵列,其特征在于,包括:
确定插值点相对于所述像素阵列的位置;
基于与所述插值点相邻的多个像素点的像素值,确定所述像素阵列在所述插值点位置的边缘方向沿多个预设边缘方向的权重;
对于所述多个预设边缘方向中的每一个预设边缘方向,从所述像素阵列中选取对应的一个或多个像素子阵列来计算所述插值点的插值像素值,其中所述一个或多个像素子阵列覆盖所述插值点;以及
基于所述像素阵列在所述插值点位置的边缘方向沿多个预设边缘方向的权重和所述多个预设边缘方向中的每一个预设边缘方向对应的所述插值点的插值像素值,计算所述插值点的加权的插值像素值。
2.根据权利要求1所述的方法,其特征在于,基于与所述插值点相邻的多个像素点的像素值,确定所述像素阵列在所述插值点位置的边缘方向沿多个预设边缘方向的权重包括:
将与所述插值点相邻的多个像素点划分为多个像素单元;
计算所述多个像素单元中每个像素单元的边缘方向在所述多个预设边缘方向上的权重分量;
基于所述多个像素单元中每个像素单元的边缘方向在所述多个预设边缘方向上的权重分量,确定所述像素阵列在所述插值点位置的边缘方向沿所述多个预设边缘方向的权重。
3.根据权利要求2所述的方法,其特征在于,所述像素单元的边缘方向在所述多个预设边缘方向上的权重分量与所述像素单元相对所述插值点位置的距离、以及所述像素单元的边缘方向的剧烈程度相关。
4.根据权利要求1所述的方法,其特征在于,所述多个预设边缘方向包括-45°方向、0°方向、45°方向和90°方向。
5.根据权利要求1所述的方法,其特征在于,对于所述多个预设边缘方向中的每一个预设边缘方向,从所述像素阵列中选取对应的一个或多个像素子阵列的边界构成平行四边形,并且所述平行四边形的第一组相对边与所述预设边缘方向平行。
6.根据权利要求5所述的方法,其特征在于,对于所述多个预设边缘方向中的每一个预设边缘方向,从所述像素阵列中选取对应的一个或多个像素子阵列来计算所述插值点的插值像素值,包括:
在每个所述像素子阵列中,沿与所述平行四边形的第一组相对边不同的第二组相对边的方向,计算每一行或列的像素在与所述插值点位置对应的位置的插值像素值,其中与所述插值点位置对应的位置是指沿所述预设边缘方向穿过所述插值点的直线与所述行或列的交点的位置;
基于所述每一行或列的像素在与所述插值点位置对应的位置的插值像素值,计算所述插值点的插值像素值。
7.根据权利要求1所述的方法,其特征在于,基于所述像素阵列在所述插值点位置的边缘方向沿多个预设边缘方向的权重和所述多个预设边缘方向中的每一个预设边缘方向对应的所述插值点的插值像素值,计算所述插值点的加权的插值像素值,包括:
基于所述像素阵列在所述插值点位置的边缘方向沿多个预设边缘方向的权重计算与每一个像素子阵列对应的插值像素值的权重;
基于每一个像素子阵列的所述插值像素值与所述插值像素值的权重计算所述插值点的加权的插值像素值。
8.一种用于对图像进行插值的装置,所述图像包括由多个像素点组成的像素阵列,其特征在于,包括:
处理器;
存储器,所述存储器中存储有能够在所述处理器上运行的程序指令,并且当所述程序指令在所述处理器上运行时,使得所述处理器:
确定插值点相对于所述像素阵列的位置;
基于与所述插值点相邻的多个像素点的像素值,确定所述像素阵列在所述插值点位置的边缘方向沿多个预设边缘方向的权重;
对于所述多个预设边缘方向中的每一个预设边缘方向,从所述像素阵列中选取对应的一个或多个像素子阵列来计算所述插值点的插值像素值,其中所述一个或多个像素子阵列覆盖所述插值点;以及
基于所述像素阵列在所述插值点位置的边缘方向沿多个预设边缘方向的权重和所述多个预设边缘方向中的每一个预设边缘方向对应的所述插值点的插值像素值,计算所述插值点的加权的插值像素值。
9.根据权利要求8所述的装置,其特征在于,基于与所述插值点相邻的多个像素点的像素值,确定所述像素阵列在所述插值点位置的边缘方向沿多个预设边缘方向的权重包括:
将与所述插值点相邻的多个像素点划分为多个像素单元;
计算所述多个像素单元中每个像素单元的边缘方向在所述多个预设边缘方向上的权重分量;
基于所述多个像素单元中每个像素单元的边缘方向在所述多个预设边缘方向上的权重分量,确定所述像素阵列在所述插值点位置的边缘方向沿所述多个预设边缘方向的权重。
10.根据权利要求9所述的装置,其特征在于,所述像素单元的边缘方向在所述多个预设边缘方向上的权重分量与所述像素单元相对所述插值点位置的距离,以及所述像素单元的边缘方向的剧烈程度相关。
11.根据权利要求8所述的装置,其特征在于,所述多个预设边缘方向包括-45°方向、0°方向、45°方向和90°方向。
12.根据权利要求8所述的装置,其特征在于,对于所述多个预设边缘方向中的每一个预设边缘方向,从所述像素阵列中选取对应的一个或多个像素子阵列的边界构成平行四边形,并且所述平行四边形的第一组相对边与所述预设边缘方向平行。
13.根据权利要求12所述的装置,其特征在于,对于所述多个预设边缘方向中的每一个预设边缘方向,从所述像素阵列中选取对应的一个或多个像素子阵列来计算所述插值点的插值像素值,包括:
在每个所述像素子阵列中,沿与所述平行四边形的第一组相对边不同的第二组相对边的方向,计算每一行或列的像素在与所述插值点位置对应的位置的插值像素值,其中与所述插值点位置对应的位置是指沿所述预设边缘方向穿过所述插值点的直线与所述行或列的交点的位置;
基于所述每一行或列的像素在与所述插值点位置对应的位置的插值像素值,计算所述插值点的插值像素值。
14.根据权利要求8所述的装置,其特征在于,基于所述像素阵列在所述插值点位置的边缘方向沿多个预设边缘方向的权重和所述多个预设边缘方向中的每一个预设边缘方向对应的所述插值点的插值像素值,计算所述插值点的加权的插值像素值,包括:
基于所述像素阵列在所述插值点位置的边缘方向沿多个预设边缘方向的权重计算与每一个像素子阵列对应的插值像素值的权重;
基于每一个像素子阵列的所述插值像素值与所述插值像素值的权重计算所述插值点的加权的插值像素值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711473491.1A CN109993693B (zh) | 2017-12-29 | 2017-12-29 | 用于对图像进行插值的方法和装置 |
US16/232,078 US10997691B2 (en) | 2017-12-29 | 2018-12-26 | Method and device for interpolating image |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711473491.1A CN109993693B (zh) | 2017-12-29 | 2017-12-29 | 用于对图像进行插值的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109993693A CN109993693A (zh) | 2019-07-09 |
CN109993693B true CN109993693B (zh) | 2023-04-25 |
Family
ID=67059869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711473491.1A Active CN109993693B (zh) | 2017-12-29 | 2017-12-29 | 用于对图像进行插值的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10997691B2 (zh) |
CN (1) | CN109993693B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111351431B (zh) * | 2020-04-13 | 2021-08-31 | 深圳市强华科技发展有限公司 | 一种pcb板上多孔位的检测系统的校正方法 |
JP7409988B2 (ja) * | 2020-07-29 | 2024-01-09 | 株式会社ニューフレアテクノロジー | パターン検査装置及び輪郭線同士のアライメント量取得方法 |
CN113077380B (zh) * | 2021-04-09 | 2023-12-08 | 余凡 | 一种栅格数据快速插值方法 |
CN117745531B (zh) * | 2024-02-19 | 2024-05-31 | 瑞旦微电子技术(上海)有限公司 | 图像插值方法、设备及可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216935A (zh) * | 2008-01-17 | 2008-07-09 | 四川虹微技术有限公司 | 基于样条函数插值算法的图像放大方法 |
JP2009182733A (ja) * | 2008-01-30 | 2009-08-13 | Kyocera Corp | 画像データ生成方法および画像データ生成装置、並びに情報コード読取装置 |
CN102638679A (zh) * | 2011-02-12 | 2012-08-15 | 澜起科技(上海)有限公司 | 基于矩阵对图像进行插值的方法及图像处理系统 |
JP2013218523A (ja) * | 2012-04-09 | 2013-10-24 | Dainippon Printing Co Ltd | 画像拡大処理装置 |
CN104700360A (zh) * | 2015-04-01 | 2015-06-10 | 中国科学院自动化研究所 | 基于边缘自适应的图像缩放方法及系统 |
CN104700361A (zh) * | 2015-04-01 | 2015-06-10 | 中国科学院自动化研究所 | 基于边缘检测的图像插值方法及系统 |
CN104794692A (zh) * | 2015-04-16 | 2015-07-22 | 中国科学院自动化研究所 | 一种图像去锯齿的系统 |
CN106204453A (zh) * | 2016-07-14 | 2016-12-07 | 京东方科技集团股份有限公司 | 一种图像的插值方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5329614A (en) * | 1991-02-07 | 1994-07-12 | Unisys Corporation | Method and apparatus for enlarging gray scale images |
US7830426B2 (en) * | 2005-12-29 | 2010-11-09 | Micron Technology, Inc. | Method and apparatus providing color interpolation in color filter arrays using edge detection and correction terms |
KR101192402B1 (ko) * | 2010-08-26 | 2012-10-17 | 중앙대학교 산학협력단 | 공분산 기반 적응적 디인터레이싱 장치 및 방법, 그리고 복잡도를 고려한 하이브리드 디인터레이싱 장치 및 방법 |
JP2016053848A (ja) * | 2014-09-03 | 2016-04-14 | ソニー株式会社 | 信号処理装置および信号処理方法、固体撮像素子、撮像装置、電子機器、並びにプログラム |
JP6473608B2 (ja) * | 2014-11-27 | 2019-02-20 | 三星ディスプレイ株式會社Samsung Display Co.,Ltd. | 画像処理装置、画像処理方法、及びプログラム |
-
2017
- 2017-12-29 CN CN201711473491.1A patent/CN109993693B/zh active Active
-
2018
- 2018-12-26 US US16/232,078 patent/US10997691B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216935A (zh) * | 2008-01-17 | 2008-07-09 | 四川虹微技术有限公司 | 基于样条函数插值算法的图像放大方法 |
JP2009182733A (ja) * | 2008-01-30 | 2009-08-13 | Kyocera Corp | 画像データ生成方法および画像データ生成装置、並びに情報コード読取装置 |
CN102638679A (zh) * | 2011-02-12 | 2012-08-15 | 澜起科技(上海)有限公司 | 基于矩阵对图像进行插值的方法及图像处理系统 |
JP2013218523A (ja) * | 2012-04-09 | 2013-10-24 | Dainippon Printing Co Ltd | 画像拡大処理装置 |
CN104700360A (zh) * | 2015-04-01 | 2015-06-10 | 中国科学院自动化研究所 | 基于边缘自适应的图像缩放方法及系统 |
CN104700361A (zh) * | 2015-04-01 | 2015-06-10 | 中国科学院自动化研究所 | 基于边缘检测的图像插值方法及系统 |
CN104794692A (zh) * | 2015-04-16 | 2015-07-22 | 中国科学院自动化研究所 | 一种图像去锯齿的系统 |
CN106204453A (zh) * | 2016-07-14 | 2016-12-07 | 京东方科技集团股份有限公司 | 一种图像的插值方法及装置 |
Non-Patent Citations (4)
Title |
---|
"A fast edge-oriented algorithm for image Interpolation";MJ Chen.et al;《Image and Vision Computing》;20051231;第23卷(第9期);全文 * |
"A review on different image interpolation techniques for image enhancement";V Patel.et al;《Journal of emerging technology and advanced》;20131231;全文 * |
"一种有效的数字图像传感器彩色插值算法";张亚等;《计算机测量与控制》;20080425(第04期);全文 * |
"基于统计特征的彩色图像快速插值方法";刘晓松等;《电子学报》;20040125(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20190206024A1 (en) | 2019-07-04 |
US10997691B2 (en) | 2021-05-04 |
CN109993693A (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109993693B (zh) | 用于对图像进行插值的方法和装置 | |
US8363985B2 (en) | Image generation method and apparatus, program therefor, and storage medium which stores the program | |
US9275463B2 (en) | Stereo image processing device and stereo image processing method | |
US9076234B2 (en) | Super-resolution method and apparatus for video image | |
EP2138975B1 (en) | Apparatus, method and computer-readable recording medium for pixel interpolation | |
US8666154B2 (en) | Interpolation | |
WO1997017801A1 (en) | Method and apparatus for video source data interpolation | |
JP2003274157A (ja) | 画像処理装置、画像処理方法、画像処理プログラムおよび画像処理プログラムを記録したコンピュータ読取可能な記録媒体 | |
KR20110091700A (ko) | 보간을 강화한 심 연산 기반의 화상 리사이징 방법 및 시스템 | |
CN112508783B (zh) | 基于方向插值的图像处理方法、计算机装置及计算机可读存储介质 | |
CN104700360B (zh) | 基于边缘自适应的图像缩放方法及系统 | |
US20170330311A1 (en) | Image processing device and method, image capturing device, program, and record medium | |
KR20060114610A (ko) | 순차주사방식에서의 바이섹션 패턴 검출 방법 및 시스템 | |
US8830395B2 (en) | Systems and methods for adaptive scaling of digital images | |
JP4716255B2 (ja) | 画像処理装置、画像処理方法、及びそのプログラム | |
US20050078884A1 (en) | Method and apparatus for interpolating a digital image | |
KR100986607B1 (ko) | 영상 보간 방법 및 그 방법이 기록된 컴퓨터로 읽을 수 있는 기록매체 | |
KR20220112211A (ko) | 카테고리컬 맵들의 업샘플링에 대한 방법 및 시스템 | |
US9380285B2 (en) | Stereo image processing method, stereo image processing device and display device | |
JP4730525B2 (ja) | 画像処理装置及びそのプログラム | |
KR20130059546A (ko) | 에지 기반 영상 보간 방법 및 이러한 방법을 사용하는 장치 | |
KR101545064B1 (ko) | 타겟 픽셀의 픽셀값 추정 장치 및 그 방법 | |
CN110349089B (zh) | 改进线性插值效果的图像处理方法及装置 | |
JP2006252108A (ja) | 画像処理装置、画像処理方法及びそのプログラム | |
CN116309654A (zh) | 上采样方法、上采样装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Method and apparatus for interpolating images Granted publication date: 20230425 Pledgee: Renlai Electronic Technology (Shanghai) Co.,Ltd. Pledgor: Montage LZ Technologies (Chengdu) Co.,Ltd. Registration number: Y2024980016173 |