一种去马赛克方法、装置、设备及存储介质与流程

文档序号:25614663发布日期:2021-06-25 15:48阅读:158来源:国知局
一种去马赛克方法、装置、设备及存储介质与流程

1.本发明涉及图像处理领域,特别涉及一种去马赛克方法、装置、设备及存储介质。


背景技术:

2.去马赛克算法是指将单通道的cfa(color filter array)域数据复原为三通道的rgb数据,其中,cfa域数据有很多形式,最广泛的一种是bayer阵列。目前的去马赛克算法很难处理好高频线条问题,且存在细节保留不够完整、伪彩色严重的问题。现有技术中,针对这些问题处理的最好的方法是通过反复迭代来对插值结果进行修正,但此过程往往需要十多次的迭代,且迭代次数不固定,对于逻辑资源和硬件资源的消耗极大;现有技术中还通过深度学习中的神经网络进行去马赛克,但深度学习的方法大多是一个“黑箱”,存在可解释性弱的问题,且参数量巨大。因此,反复迭代差值法和神经网络法都增加了去马赛克应用于芯片的难度。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种去马赛克方法、装置、设备及介质,能够提高插值方向判断的准确性,减少伪色彩,在实现去马赛克的同时降低资源消耗。其具体方案如下:
4.第一方面,本申请公开了一种去马赛克方法,包括:
5.以目标像素点为中心从拜耳阵列中选取预设尺寸大小的窗口,并基于所述窗口内像素点的值判断所述窗口是否属于高频线条区域;
6.若是,则计算所述窗口的色比信息得到所述目标像素点对应的当前色比信息,然后读取本地存储的目标已插值像素点对应的历史色比信息,根据所述历史色比信息补偿所述窗口内像素点得到补偿后窗口,并将所述当前色比信息存储至本地;
7.根据所述补偿后窗口的水平梯度和垂直梯度确定插值方向,并基于所述补偿后窗口的色比和clip函数确定出目标插值;
8.利用所述目标插值并按照所述插值方向进行插值操作。
9.可选的,所述基于所述窗口内像素点的值判断所述窗口是否属于高频线条区域,包括:
10.基于所述窗口内像素点的值计算所述窗口的水平梯度和垂直梯度,得到水平梯度和垂直梯度的梯度差值;
11.根据所述梯度差值和第一预设阈值判断所述窗口是否属于高频线条区域。
12.可选的,所述基于所述窗口内像素点的值判断所述窗口是否属于高频线条区域,包括:
13.若根据所述梯度差值和第一预设阈值判断所述窗口不属于高频线条区域,则以所述目标像素点为中心从所述窗口内选取得到子窗口;
14.计算所述子窗口内奇数行的g像素均值和偶数行的g像素均值,得到奇数行的g像
素均值和偶数行的g像素均值的像素差值;
15.根据所述像素差值和第二预设阈值判断所述窗口是否属于高频线条区域。
16.可选的,所述读取本地存储的目标已插值像素点对应的历史色比信息,包括:
17.读取本地存储的与所述目标像素点同行的左侧目标已插值像素点对应的色比信息,作为所述历史色比信息;
18.若所述目标像素点同行内不存在目标已插值像素点对应的色比信息,则从本地读取所述目标像素点上一行的首个目标已插值像素点对应的色比信息,作为所述历史色比信息。
19.可选的,所述计算所述窗口的色比信息得到当前色比信息,包括:
20.计算所述窗口内r、g、b通道分别对应的像素均值,并计算不同像素均值的比值得到所述色比信息。
21.可选的,所述根据所述历史色比信息补偿所述窗口内像素点得到补偿后窗口,包括:
22.根据所述历史色比信息,将所述窗口内像素点乘以对应的色比参数以补偿所述窗口内像素点,得到补偿后窗口。
23.可选的,所述根据所述补偿后窗口的水平梯度和垂直梯度确定插值方向,并基于所述补偿后窗口的色比和clip函数确定出目标插值,包括:
24.比较所述水平梯度和所述垂直梯度的数值大小,选择最小数值对应的方向作为所述插值方向;
25.统计所述补偿后窗口内目标插值像素的最大值、最小值和均值;
26.计算所述目标像素点在所述插值方向上的同通道像素点的均值,
27.基于所述目标插值像素的均值、所述同通道像素点的均值和所述目标像素点的值计算得到预测插值;
28.基于所述预测插值、所述目标插值像素的最大值和所述目标插值像素的最小值,利用clip函数确定出目标插值。
29.第二方面,本申请公开了一种去马赛克装置,包括:
30.高频线条区域检测模块,用于以目标像素点为中心从拜耳阵列中选取预设尺寸大小的窗口,并基于所述窗口内像素点的值判断所述窗口是否属于高频线条区域;
31.色比补偿模块,用于若所述高频线条区域检测模块的检测结果为是,则计算所述窗口的色比信息得到所述目标像素点对应的当前色比信息,然后读取本地存储的目标已插值像素点对应的历史色比信息,根据所述历史色比信息补偿所述窗口内像素点得到补偿后窗口,并将所述当前色比信息存储至本地;
32.目标插值确定模块,用于根据所述补偿后窗口的水平梯度和垂直梯度确定插值方向,并基于所述补偿后窗口的色比和clip函数确定出目标插值;
33.插值模块,用于利用所述目标插值并按照所述插值方向进行插值操作。
34.第三方面,本申请公开了一种电子设备,包括:
35.存储器,用于保存计算机程序;
36.处理器,用于执行所述计算机程序,以实现前述的去马赛克方法。
37.第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计
算机程序被处理器执行时实现前述的去马赛克方法。
38.本申请中,以目标像素点为中心从拜耳阵列中选取预设尺寸大小的窗口,并基于所述窗口内像素点的值判断所述窗口是否属于高频线条区域;若是,则计算所述窗口的色比信息得到所述目标像素点对应的当前色比信息,然后读取本地存储的目标已插值像素点对应的历史色比信息,根据所述历史色比信息补偿所述窗口内像素点得到补偿后窗口,并将所述当前色比信息存储至本地;根据所述补偿后窗口的水平梯度和垂直梯度确定插值方向,并基于所述补偿后窗口的色比和clip函数确定出目标插值;利用所述目标插值并按照所述插值方向进行插值操作。可见,本申请中对于高频线条区域,利用本地存储的目标已插值像素点对应的历史色比信息对当前当前窗口进行像素补偿,可以提高插值方向判断的准确性,并且,根据补偿后窗口的色比指导插值操作,可以处理好高频线条问题并较为完整的保留细节,也可以规避伪彩色严重的问题,在实现去马赛克的同时降低资源消耗。
附图说明
39.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
40.图1为本申请提供的一种去马赛克方法流程图;
41.图2为本申请提供的一种具体的去马赛克方法流程图;
42.图3为本申请提供的一种以r像素点为中心的窗口图;
43.图4为本申请提供的与图3对应的像素点坐标图;
44.图5为本申请提供的一种高频线条错误模式示意图;
45.图6为本申请提供的一种高频线条错误模式示意图;
46.图7为本申请提供的一种具体的去马赛克方法流程图;
47.图8为本申请提供的一种去马赛克装置结构示意图;
48.图9为本申请提供的一种电子设备结构图。
具体实施方式
49.现有技术中,通过反复迭代来对插值结果进行修正,但此过程往往需要十多次的迭代,且迭代次数不固定,对于逻辑资源和硬件资源的消耗极大;现有技术中还通过深度学习中的神经网络进行去马赛克,但深度学习存在可解释性弱的问题,且参数量巨大,增加了去马赛克应用于芯片的难度。为克服上述技术问题,本申请提出一种去马赛克方法,可以提高插值方向判断的准确性,较为完整的保留细节,同时规避伪彩色严重的问题,在实现去马赛克的同时降低资源消耗。
50.本申请实施例公开了一种去马赛克方法,参见图1所示,该方法可以包括以下步骤:
51.步骤s11:以目标像素点为中心从拜耳阵列中选取预设尺寸大小的窗口,并基于所述窗口内像素点的值判断所述窗口是否属于高频线条区域。
52.本实施例中,首先以目标像素点为中心从拜耳阵列中选取预设尺寸大小的窗口,
并根据上述窗口内像素点的值判断上述窗口是否属于高频线条区域。需要说明的是,插值流程包括r/b像素点插g、r/b像素点插b/r和g像素点插r/b,去马赛克插值算法运算时,会按行上到下、列从左到右的顺序遍历并处理每一个像素点;上述目标像素点包括r(红)像素点、g(绿)像素点和b(蓝)像素点,且每一步插值前都进行高频线条检测,检测范围是以当前目标像素点为中心的预设尺寸大小的窗口;具体的,可以通过窗口内像素点的值判断窗口内的相邻行/列之间灰度变化是否剧烈,从而确定上述窗口是否属于高频线条区域。
53.步骤s12:若是,则计算所述窗口的色比信息得到所述目标像素点对应的当前色比信息,然后读取本地存储的目标已插值像素点对应的历史色比信息,根据所述历史色比信息补偿所述窗口内像素点得到补偿后窗口,并将所述当前色比信息存储至本地。
54.本实施例中,若判断上述窗口属于高频线条区域,则计算上述窗口的色比信息得到上述目标像素点对应的当前色比信息,然后读取本地存储的目标已插值像素点对应的历史色比信息,并根据上述历史色比信息补偿上述窗口内像素点得到补偿后窗口,并将上述当前色比信息存储至本地。可以理解的是,上述目标已插值像素点可以为距离上述目标像素点最近的已经经过插值的、且属于高频线条区域并含有对应的色比信息的像素点,即得到的历史色比信息为当前窗口邻域的高频线条区域的色比信息。可以理解的是,邻域的历史色比信息不是任意时刻都需要用来进行补偿的,通常只在高频线条区域进行补偿,因此通过检测高频线条,再利用历史色比信息对上述窗口的高频线条区域进行补偿,具体的,可以将窗口内的每个像素点乘对应的色比参数,得到补偿后像素,由此,利用补偿后窗口的像素,可以提高后续对上述窗口所在高频线条区域的插值方向判断的准确性。其中,上述色比信息为上述窗口内不同通道的均值之间的比值,具体的,计算上述窗口内r、g、b通道分别对应的像素均值,并计算不同像素均值的比值得到上述当前色比信息。例如,计算上述窗口内的三个通道的均值:r
mean
、g
mean
、b
mean
,并计算得到色比信息如gr=g
mean
/r
mean
、gb=g
mean
/b
mean

55.步骤s13:根据所述补偿后窗口的水平梯度和垂直梯度确定插值方向,并基于所述补偿后窗口的色比和clip函数确定出目标插值。
56.本实施例中,对上述窗口进行补偿后,计算补偿后窗口的水平梯度和垂直梯度,根据水平梯度和垂直梯度确定插值方向,同时基于上述补偿后窗口的色比信息并结合clip函数确定出目标插值,即对目标像素点的目标插值像素,具体的,通过clip函数和目标插值像素对应通道在所述补偿后窗口内的像素最大值和最小值,确定出目标插值;可以理解的是,色比插值相对于色差插值可以得到更加细碎的结果,即可以保留更为完整的细节,减少伪色彩的出现,这是由于色比相比于色差的状态更不稳定,即比值的分子分母导致的变化一般比减法中值的变化更为剧烈,但同时也需要对这种剧烈变化造成的影响造成消除,因此引入min

max clip函数,可以限制目标插值的数值范围,避免色比插值带来的剧烈变化影响插值效果。
57.步骤s14:利用所述目标插值并按照所述插值方向进行插值操作。
58.本实施例中,在确定出目标插值和插值方向后,基于上述目标插值并按照上述插值方向进行插值操作。
59.由上可见,本实施例中以目标像素点为中心从拜耳阵列中选取预设尺寸大小的窗口,并基于所述窗口内像素点的值判断所述窗口是否属于高频线条区域;若是,则计算所述
窗口的色比信息得到所述目标像素点对应的当前色比信息,然后读取本地存储的目标已插值像素点对应的历史色比信息,根据所述历史色比信息补偿所述窗口内像素点得到补偿后窗口,并将所述当前色比信息存储至本地;根据所述补偿后窗口的水平梯度和垂直梯度确定插值方向,并基于所述补偿后窗口的色比和clip函数确定出目标插值;利用所述目标插值并按照所述插值方向进行插值操作。可见,本申请中对于高频线条区域,利用本地存储的目标已插值像素点对应的历史色比信息对当前当前窗口进行像素补偿,可以提高插值方向判断的准确性,并且,根据补偿后窗口的色比指导插值操作,可以处理好高频线条问题并较为完整的保留细节,也可以规避伪彩色严重的问题,在实现去马赛克的同时降低资源消耗。
60.本申请实施例公开了一种具体的去马赛克方法,参见图2所示,该方法可以包括以下步骤:
61.步骤s21:以目标像素点为中心从拜耳阵列中选取预设尺寸大小的窗口。
62.步骤s22:基于所述窗口内像素点的值计算所述窗口的水平梯度和垂直梯度,得到水平梯度和垂直梯度的梯度差值;根据所述梯度差值和第一预设阈值判断所述窗口是否属于高频线条区域。
63.本实施例中,选取预设尺寸大小的窗口后,首先基于上述窗口内像素点的值计算窗口的水平梯度和垂直梯度,得到水平梯度和垂直梯度的梯度差值,然后根据上述梯度差值和第一预设阈值判断上述窗口是否属于高频线条区域。具体的,以图3和图4进行举例说明,图3显示了以r为中心的5x5窗口内的编号,从第0行/列到第4行/列,如果要取第i行j列的像素点的值,用cfa[i][j]来表示,比如cfa[2][2]表示取第2行第2列的像素点,本实施例中以r像素点举例说明,g像素点和b像素点的检测步骤类似。
[0064]
计算上述5x5窗口的水平梯度:
[0065][0066]
abs表征绝对值,计算上述5x5窗口的垂直梯度:
[0067][0068]
根据第一判定条件判断,即比较上述水平梯度和垂直梯度的梯度差值与第一预设阈值的大小:
[0069]
condition1:abs(gradh

gradv)>thresh1;
[0070]
若abs(gradh

gradv)大于thresh1,则可以认为是高频区域,不满足此条件,一般情况下可以认为是平坦区域,由此判断上述窗口是否属于高频线条区域。
[0071]
本实施例中,所述基于所述窗口内像素点的值判断所述窗口是否属于高频线条区域,可以包括:若根据所述梯度差值和第一预设阈值判断所述窗口不属于高频线条区域,则以所述目标像素点为中心从所述窗口内选取得到子窗口;计算所述子窗口内奇数行的g像素均值和偶数行的g像素均值,得到奇数行的g像素均值和偶数行的g像素均值的像素差值;根据所述像素差值和第二预设阈值判断所述窗口是否属于高频线条区域。可以理解的是,针对某些特殊情况下,上述第一判定条件的判断准确性较低,此时可以进一步根据第二判定条件进行判断。
[0072]
以上述以r为中心的5x5窗口举例说明,以r为中心选取3x3子窗口,分行列计算上述子窗口内g通道像素的均值;
[0073]
计算奇数行(1、3行)的g的均值:
[0074]
mean(g
奇行,
.)=(cfa[1][2]+cfa[3][2])/2;
[0075]
计算偶数行(2行)的g的均值:
[0076]
mean(g
偶行,
.)=(cfa[2][1]+cfa[2][3])/2;
[0077]
其中,mean(x
i,
.)表示取第i行x(x∈(r,g,b))像素点的均值,mean(x.
,j
)表示取第j列x(x∈(r,g,b))像素点的均值;需要注意的是,本实施例中在3x3窗口范围内,按照列计算的话,奇数列和偶数列得到的值也是这两个,即mean(g
偶行,
.)=mean(,.g
奇列,
),mean(g
奇行,
.)=mean(,.g
偶列,
);
[0078]
根据第一判定条件判断,即比较上述奇数行的g像素均值和偶数行的g像素均值的像素差值与第二预设阈值的大小:
[0079]
condition2:abs(mean(g
奇行,
.)

mean(g
偶行,
.))>thresh2;
[0080]
若abs(mean(g
奇行,
.)

mean(g
偶行,
.))大于thresh2,则可以认为是高频线条区域;即本实施例中首先若f(d(condition1))为1,则认为此窗口为高频线条区域,进一步若f(d(condition1))为0,判断若else if(!d(condition1)&&d(condition2))为1,则此窗口为高频线条区域,否则此窗口为平坦区域;其中,d(x)表示逻辑函数,x成立则值为1,否则为0;其中,上述thresh1和thresh2可以根据实际情况进行手动调整。
[0081]
步骤s23:若是,则计算所述窗口的色比信息得到所述目标像素点对应的当前色比信息,然后读取本地存储的与所述目标像素点同行的左侧目标已插值像素点对应的色比信息,作为历史色比信息,根据所述历史色比信息补偿所述窗口内像素点得到补偿后窗口,并将所述当前色比信息存储至本地。
[0082]
本实施例中,若上述窗口属于高频线条区域,则计算上述窗口的色比信息得到上述目标像素点对应的当前色比信息,然后读取本地存储的与上述目标像素点同行的左侧目标已插值像素点对应的色比信息,作为历史色比信息,根据上述历史色比信息补偿上述窗口内像素点得到补偿后窗口,并将上述当前色比信息存储至本地。可以理解的是,具体插值过程中,并不是所有的高频线条都会插错,图5、图6中给出了两种错误方式,垂直才是这些线条正确的方向,图5中在垂直线条的中间部分出现了插错方向的水平线条,此时插错区域的左边邻域是正确的,因此将其色比信息作为补偿到当前像素点所在的5x5窗口就可以帮助当前像素点插值,即利用在之前插值过程中存储的相邻高频区域的历史色比信息对当前高频线条区域进行插值。
[0083]
本实施例中,所述然后读取本地存储的与所述目标像素点同行的左侧目标已插值像素点对应的色比信息,作为历史色比信息之后,还包括:若所述目标像素点同行内不存在目标已插值像素点对应的色比信息,则从本地读取所述目标像素点上一行的首个目标已插值像素点对应的色比信息,作为所述历史色比信息。可以理解的是,如图6,如果当前像素点处于高频线条区域且位于图像的首列,那么在没有左边领域时,利用上一行首个目标已插值像素点对应的色比信息进行补偿。
[0084]
本实施例中,所述将所述当前色比信息存储至本地,可以包括:利用所述当前色比信息替换当前行存储的历史色比信息。可以理解的是,在实际运行中,在每次插值过程中对
遇到的高频线条区域的色比信息都会进行记录,具体的对于每一行像素点来说,在遍历每行像素点时可以记录该行第一个色比信息以及最新的一个色比信息,即当得到该行第三个色比信息时,可以将本地存储的该行的第二个色比信息替换为上述第三个色比信息,可以理解的是,像素插值过程为从上到下从左到右的过程,在进行像素补偿时,可以用当前行距离当前目标像素点最近的左侧的目标已插值像素点的历史色比信息进行补偿,或者在当前行没有对应的历史色比信息,即目标像素点左侧没有属于高频区域像素点时,利用上一行首个目标已插值像素点的历史色比信息进行补偿,由此为减少资源占用提高运行速度可以利用当前色比信息对当前行存储的色比信息进行更新。
[0085]
步骤s24:根据所述历史色比信息,将所述窗口内像素点乘以对应的色比参数以补偿所述窗口内像素点,得到补偿后窗口。
[0086]
本实施例中,根据得到的历史色比信息,将上述窗口内像素点乘以对应的色比参数以补偿窗口内像素点,得到补偿后窗口。即若目标像素点处于高频线条区域的,利用左邻域或者上一行的色比信息来补偿,当目标像素点是本行最左端或者当前点左边没有高频线条区域时,使用上一行处于高频线条区域的色比信息。具体补偿方式,将上述目标像素点为中心的5x5窗口内的r像素点乘上gr
left
,b像素点乘上gb
left

[0087]
步骤s25:根据所述补偿后窗口的水平梯度和垂直梯度确定插值方向,并基于所述补偿后窗口的色比和clip函数确定出目标插值。
[0088]
本实施例中,所述根据所述补偿后窗口的水平梯度和垂直梯度确定插值方向,并基于所述补偿后窗口的色比和clip函数确定出目标插值,包括:比较所述水平梯度和所述垂直梯度的数值大小,选择最小数值对应的方向作为所述插值方向;统计所述补偿后窗口内目标插值像素的最大值、最小值和均值;计算所述目标像素点在所述插值方向上的同通道像素点的均值,基于所述目标插值像素的均值、所述同通道像素点的均值和所述目标像素点的值计算得到预测插值;基于所述预测插值、所述目标插值像素的最大值和所述目标插值像素的最小值,利用clip函数确定出目标插值。
[0089]
例如,根据上述补偿后5x5窗口的水平梯度gradh'和垂直梯度gradv',取min(gradh',gradv')所在的方向作为插值方向,其中,上述水平梯度gradh'和垂直梯度gradv'的计算方法同步骤s22中gradh、gradv的计算。然后,此时需要g插r,则计算5x5窗口内g通道的均值g
mean
,以及最大值g
max
和最小值g
min
。进一步,若上一步判断出来的插值方向为水平方向,则得到目标像素点r在插值方向上的同通道像素点的均值为r
mean
=(cfa[2][0]+cfa[2][2]+cfa[2][4])/3,若上一步判断出来的插值方向为垂直方向,则得到目标像素点r在插值方向上的同通道像素点的均值为r
mean
=(cfa[0][2]+cfa[2][2]+cfa[4][2])/3,基于目标插值像素的均值、同通道像素点的均值和目标像素点的值计算得到预测插值g
new
=cfa[2][2]*(g
mean
/r
mean
),然后做min

max clip确定出目标插值,f d(g
max
<g
new
)g
new
=g
max
,f d(g
min
>g
new
)g
new
=g
min
,即保证得到的目标插值在最大值g
max
和最小值g
min
之间。
[0090]
可以理解的是,由于色比相比于色差的状态更剧烈、更不稳定,因此需要对这种剧烈变化造成的影响造成消除,通过引入min

max clip,以rb像素点插g举例,插出来的g为g
new
,5x5窗口内,g通道的最大值最小值分别为g
max
、g
min
,保持目标插值g
new
在[g
min
,g
max
]的范围内,对于插出来的r
new
、b
new
也分别保持在[r
min
,r
max
]和[b
min
,b
max
]的范围内。
[0091]
步骤s26:利用所述目标插值并按照所述插值方向进行插值操作。
[0092]
进一步,例如图7所示,若步骤s22检测当前窗口不属于高频线条区域,则根据窗口的水平梯度和垂直梯度的数值大小,选择最小数值对应的方向作为所述插值方向,然后再根据该窗口的色比信息进行插值,即不再需要做邻域色比补偿。
[0093]
其中,关于上述步骤s21、步骤s26的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。
[0094]
由上可见,以简单高频线条检测为依据,根据图片中当前像素点所在行中距离当前点最近的左侧高频线条区域的色比信息,或上一行首个高频线条区域的色比信息,辅助当前像素点进行插值方向的二次判断,之后再使用色比的方式进行插值,基于领域色比补偿的去马赛克算法可以更大概率地将高频线条插对方向,并较为完整地保留图像细节,且规避伪彩色严重的问题,高效处理去马赛克算法难以解决的高频线条问题,通过色比插值减少伪彩色,同时较为完整的恢复出原图的信息,在实现去马赛克的同时降低资源消耗。
[0095]
相应的,本申请实施例还公开了一种去马赛克装置,参见图8所示,该装置包括:
[0096]
高频线条区域检测模块11,用于以目标像素点为中心从拜耳阵列中选取预设尺寸大小的窗口,并基于所述窗口内像素点的值判断所述窗口是否属于高频线条区域;
[0097]
色比补偿模块12,用于若所述高频线条区域检测模块的检测结果为是,则计算所述窗口的色比信息得到所述目标像素点对应的当前色比信息,然后读取本地存储的目标已插值像素点对应的历史色比信息,根据所述历史色比信息补偿所述窗口内像素点得到补偿后窗口,并将所述当前色比信息存储至本地;
[0098]
目标插值确定模块13,用于根据所述补偿后窗口的水平梯度和垂直梯度确定插值方向,并基于所述补偿后窗口的色比和clip函数确定出目标插值;
[0099]
插值模块14,用于利用所述目标插值并按照所述插值方向进行插值操作。
[0100]
由上可见,本实施例中以目标像素点为中心从拜耳阵列中选取预设尺寸大小的窗口,并基于所述窗口内像素点的值判断所述窗口是否属于高频线条区域;若是,则计算所述窗口的色比信息得到所述目标像素点对应的当前色比信息,然后读取本地存储的目标已插值像素点对应的历史色比信息,根据所述历史色比信息补偿所述窗口内像素点得到补偿后窗口,并将所述当前色比信息存储至本地;根据所述补偿后窗口的水平梯度和垂直梯度确定插值方向,并基于所述补偿后窗口的色比和clip函数确定出目标插值;利用所述目标插值并按照所述插值方向进行插值操作。可见,本申请中对于高频线条区域,利用本地存储的目标已插值像素点对应的历史色比信息对当前当前窗口进行像素补偿,可以提高插值方向判断的准确性,并且,根据补偿后窗口的色比指导插值操作,可以处理好高频线条问题并较为完整的保留细节,也可以规避伪彩色严重的问题,在实现去马赛克的同时降低资源消耗。
[0101]
在一些具体实施例中,所述高频线条区域检测模块11具体可以包括:
[0102]
第一高频线条区域检测单元,用于基于所述窗口内像素点的值计算所述窗口的水平梯度和垂直梯度,得到水平梯度和垂直梯度的梯度差值;根据所述梯度差值和第一预设阈值判断所述窗口是否属于高频线条区域。
[0103]
第二高频线条区域检测单元,用于若根据所述梯度差值和第一预设阈值判断所述窗口不属于高频线条区域,则以所述目标像素点为中心从所述窗口内选取得到子窗口;计算所述子窗口内奇数行的g像素均值和偶数行的g像素均值,得到奇数行的g像素均值和偶数行的g像素均值的像素差值;根据所述像素差值和第二预设阈值判断所述窗口是否属于
高频线条区域。
[0104]
在一些具体实施例中,所述色比补偿模块12具体可以包括:
[0105]
色比计算单元,用于计算所述窗口内r、g、b通道分别对应的像素均值,并计算不同像素均值的比值得到所述色比信息;
[0106]
第一色比读取单元,用于读取本地存储的与所述目标像素点同行的左侧目标已插值像素点对应的色比信息,作为所述历史色比信息;
[0107]
第二色比读取单元,用于若所述目标像素点同行内不存在目标已插值像素点对应的色比信息,则从本地读取所述目标像素点上一行的首个目标已插值像素点对应的色比信息,作为所述历史色比信息;
[0108]
色比补偿单元,用于根据所述历史色比信息,将所述窗口内像素点乘以对应的色比参数以补偿所述窗口内像素点,得到补偿后窗口。
[0109]
在一些具体实施例中,所述目标插值确定模块13具体可以包括:
[0110]
插值方向确定单元,用于比较所述水平梯度和所述垂直梯度的数值大小,选择最小数值对应的方向作为所述插值方向;
[0111]
目标插值确定单元,用于统计所述补偿后窗口内目标插值像素的最大值、最小值和均值;计算所述目标像素点在所述插值方向上的同通道像素点的均值,基于所述目标插值像素的均值、所述同通道像素点的均值和所述目标像素点的值计算得到预测插值;基于所述预测插值、所述目标插值像素的最大值和所述目标插值像素的最小值,利用clip函数确定出目标插值。
[0112]
进一步的,本申请实施例还公开了一种电子设备,参见图9所示,图中的内容不能被认为是对本申请的使用范围的任何限制。
[0113]
图9为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的去马赛克方法中的相关步骤。
[0114]
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
[0115]
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括色比信息在内的数据223等,存储方式可以是短暂存储或者永久存储。
[0116]
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的去马赛克方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
[0117]
进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中
存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的去马赛克方法步骤。
[0118]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0119]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
[0120]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0121]
以上对本发明所提供的一种去马赛克方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1