下采样方法、下采样装置、电子设备及存储介质与流程

文档序号:32395770发布日期:2022-11-30 10:26阅读:184来源:国知局
下采样方法、下采样装置、电子设备及存储介质与流程

1.本技术涉及图像处理技术领域,特别涉及一种基于可变滤波核尺寸的下采样方法、下采样装置、电子设备及计算机可读存储介质。


背景技术:

2.图像下采样广泛应用于各类图像处理过程中,如产生目标大小的图像或产生缩略图。当前图像处理中,业界常用的下采样方法由于减少了图像的像素数目,图像的采样频率降低,导致下采样后的图像无法表达高频的图像信息,图像容易产生混叠(aliasing)的现象。因此,业界也有方法采用增加预处理抗混叠滤波器的方式来减弱混叠的效应。然而,这种方式会造成图像细节难以保留,使得图像变得模糊。


技术实现要素:

3.本技术实施方式提供了一种基于可变滤波核尺寸的下采样方法、下采样装置、电子设备及计算机可读存储介质。
4.本技术实施方式的基于可变滤波核尺寸的下采样方法,用于根据输入图像输出目标图像,所述下采样方法包括:获取所述目标图像中的目标像素在所述输入图像中对应的中心像素的位置;确定用于对所述输入图像进行插值处理的滤波核类型;根据所述目标图像与所述输入图像的缩放比例确定用于对所述输入图像进行插值处理的滤波核尺寸;其中,所述输入图像在所述滤波核尺寸范围内包括多个原始像素,所述中心像素位于所述滤波核尺寸范围内;根据多个所述原始像素与所述中心像素之间的位置关系、以及所述滤波核类型确定所述滤波核尺寸范围内的每个所述原始像素对应的权重值;根据所述滤波核尺寸范围内的多个所述原始像素的像素值、以及每个所述原始像素对应的权重值计算所述目标像素的像素值。
5.本技术实施方式的基于可变滤波核尺寸的下采样装置,用于根据输入图像输出目标图像,所述下采样装置包括后向位置计算模块、滤波核选择模块、滤波核尺寸设置模块、滤波核权值设置模块及水平及垂直方向计算模块。所述后向位置计算模块用于获取所述目标图像中的目标像素在所述输入图像中对应的中心像素的位置。所述滤波核选择模块用于确定用于对所述输入图像进行插值处理的滤波核类型。所述滤波核尺寸设置模块用于根据所述目标图像与所述输入图像的缩放比例确定用于对所述输入图像进行插值处理的滤波核尺寸;其中,所述输入图像在所述滤波核尺寸范围内包括多个原始像素,所述中心像素位于所述滤波核尺寸范围内。所述滤波核权值设置模块用于根据多个所述原始像素与所述中心像素之间的位置关系、以及所述滤波核类型确定所述滤波核尺寸范围内的每个所述原始像素对应的权重值。所述水平及垂直方向计算模块用于根据所述滤波核尺寸范围内的多个所述原始像素的像素值、以及每个所述原始像素对应的权重值计算所述目标像素的像素值。
6.本技术实施方式的电子设备,包括一个或多个处理器和存储器,所述存储器存储
有计算机程序,所述计算机程序被所述处理器执行的情况下,实现本技术实施方式的基于可变滤波核尺寸的下采样方法。
7.本技术实施方式的计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行的情况下,实现本技术实施方式的基于可变滤波核尺寸的下采样方法。
8.本技术实施方式的基于可变滤波核尺寸的下采样方法、下采样装置、电子设备及计算机可读存储介质,通过自适应可变滤波核尺寸的方案,可使得图像经过下采样后具有尽可能少的混叠和较好的清晰度。
9.本技术实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术实施方式的实践了解到。
附图说明
10.本技术的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
11.图1是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
12.图2是本技术某些实施方式的基于可变滤波核尺寸的下采样装置的模块示意图;
13.图3是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的原理示意图;
14.图4是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的原理示意图;
15.图5是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的原理示意图;
16.图6是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
17.图7是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
18.图8是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
19.图9是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
20.图10是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的原理示意图;
21.图11是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
22.图12是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的原理示意图;
23.图13是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
24.图14是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
25.图15是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
26.图16是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
27.图17是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
28.图18是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
29.图19是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的原理示意图;
30.图20是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
31.图21是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的原理示意图;
32.图22是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的原理示意图;
33.图23是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
34.图24是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
35.图25是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的流程示意图;
36.图26是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的效果示意图;
37.图27是本技术某些实施方式的基于可变滤波核尺寸的下采样方法的效果示意图;
38.图28是本技术某些实施方式的电子设备的结构示意图;
39.图29是本技术某些实施方式的计算机可读存储介质与处理器的连接状态示意图。
具体实施方式
40.以下结合附图对本技术的实施方式作进一步说明。附图中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。另外,下面结合附图描述的本技术的实施方式是示例性的,仅用于解释本技术的实施方式,而不能理解为对本技术的限制。
41.请参阅图1,本技术实施方式提供一种基于可变滤波核尺寸的下采样方法。下采样方法用于根据输入图像输出目标图像。下采样方法包括:
42.01:获取目标图像中的目标像素在输入图像中对应的中心像素的位置;
43.02:确定用于对输入图像进行插值处理的滤波核类型;
44.03:根据目标图像与输入图像的缩放比例确定用于对输入图像进行插值处理的滤波核尺寸;其中,输入图像在滤波核尺寸范围内包括多个原始像素,中心像素位于滤波核尺寸范围内;
45.04:根据多个原始像素与中心像素之间的位置关系、以及滤波核类型确定滤波核尺寸范围内的每个原始像素对应的权重值;
46.05:根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的权重值计算目标像素的像素值。
47.请参阅图2,本技术实施方式还提供一种基于可变滤波核尺寸的下采样装置100。下采样装置100用于根据输入图像输出目标图像。下采样装置100包括后向位置计算模块10、滤波核选择模块20、滤波核尺寸设置模块30、滤波核权值设置模块40和水平及垂直方向计算模块50。本技术实施方式的基于可变滤波核尺寸的下采样方法可由本技术实施方式的基于可变滤波核尺寸的下采样装置100实现。具体地,后向位置计算模块10、滤波核选择模块20、滤波核尺寸设置模块30、滤波核权值设置模块40及水平及垂直方向计算模块50分别可用于实现01、02、03、04及05中的方法。也即是说,后向位置计算模块10可以用于获取目标图像中的目标像素在输入图像中对应的中心像素的位置。滤波核选择模块20可以用于确定用于对输入图像进行插值处理的滤波核类型。滤波核尺寸设置模块30可以用于根据目标图像与输入图像的缩放比例确定用于对输入图像进行插值处理的滤波核尺寸。其中,输入图像在滤波核尺寸范围内包括多个原始像素,中心像素位于滤波核尺寸范围内。滤波核权值设置模块40可以用于根据多个原始像素与中心像素之间的位置关系、以及滤波核类型确定滤波核尺寸范围内的每个原始像素对应的权重值。水平及垂直方向计算模块50可以用于根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的权重值计算目标像素的像素值。
48.本技术实施方式的基于可变滤波核尺寸的下采样方法和下采样装置100,通过自适应可变滤波核尺寸的方案,可使得图像经过下采样后具有尽可能少的混叠和较好的清晰度。
49.具体地,本技术实施方式的下采样方法用于对输入图像进行下采样处理得到目标
图像。图像下采样可以理解为缩小图像,又称为降采样。图像下采样的目的主要有:使得图像符合显示区域的大小、生成对应图像的缩略图、处理大尺寸图像以减少运算量等。
50.请参阅图3,假设输入图像为a,目标图像为b。输入图像a的大小为m*n,目标图像b的大小为m*n,则目标图像b与输入图像a的缩放比例k=m/m=n/n。其中,在根据输入图像a得到目标图像b时,输入图像a的大小是已知的,目标图像b的大小、缩放比例k中的至少一个参数是已知的,另外一个参数可以通过计算得到。例如,可以由用户手动设置期望的目标图像b的大小或者由系统自动设置合适的目标图像b的大小,那么根据k=m/m=n/n,即可计算得到缩放比例k的大小。又例如,可以由用户手动设置期望的缩放比例k的大小或者由系统自动设置合适的缩放比例k的大小,那么根据k=m/m=n/n,即可计算得到目标图像b的大小。
51.在01中,获取目标图像中的目标像素在输入图像中对应的中心像素的位置。如图4所示,输入图像a包括8*8个原始像素(即m=8,n=8),目标图像b包括2*2个目标像素(即m=2,n=2)。输入图像a中的每个原始像素的像素值都是已知的,而目标图像b中的目标像素的像素值是未知的,因此,想要求出目标图像b中每个目标像素的像素值,需要先找出目标像素在输入图像a中的对应位置。此处将目标像素在输入图像中对应的像素称之为中心像素,找出目标像素在输入图像a中的对应位置,即是找出中心像素的位置。以图4为例,目标像素b11在输入图像a中对应的像素为中心像素c22(图4中中心像素c22的位置仅为示意标出,后文将详细描述确定中心像素c22的位置的方式),目标图像b中的目标像素b11在输入图像a中的对应位置,即是中心像素c22的位置。
52.在02中,确定用于对输入图像进行插值处理的滤波核类型。具体地,图像下采样的插值方式可包括最近邻(nearest_neighbor)插值、均值(box)插值、双线性(bilinear)插值、双三次(bicubic)插值、兰索斯(lanczos)插值等。本技术实施方式根据对插值效果和插值速度的要求,可选择对应插值方式的滤波核类型,以获得期望的插值效果和/或插值速度。
53.在03中,根据目标图像与输入图像的缩放比例确定用于对输入图像进行插值处理的滤波核尺寸。具体地,如图4所示,当缩放比例越小时(图4中缩放比例k=1/4),即得到的目标图像越小,则滤波核尺寸可以相应设置得较大;如图5所示,当缩放比例越大时(图5中缩放比例k=1/2),即得到的目标图像越大,则滤波核尺寸可以相应设置得较小,从而可以根据目标图像与输入图像的缩放比例自适应调整滤波核尺寸,使得图像经过下采样后具有尽可能少的混叠和较好的清晰度。需要指出的是,本技术实施方式中根据目标图像与输入图像的缩放比例确定滤波核尺寸,但滤波核尺寸并不必然等于缩放比例的倒数,例如缩放比例为1/4,则滤波核尺寸为4,或是缩放比例为1/2,则滤波核尺寸为2,而是在确定滤波核尺寸时,将目标图像与输入图像的缩放比例作为因素考虑进去,滤波核尺寸也可以大于缩放比例的倒数,例如,当缩放比例为1/4时,滤波核尺寸可以为5;当缩放比例为1/2时,滤波核尺寸可以为4。
54.在04中,根据多个原始像素与中心像素之间的位置关系、以及滤波核类型确定滤波核尺寸范围内的每个原始像素对应的权重值。具体地,原始像素与中心像素之间的位置关系可包括相对距离和/或相对方向。仍以图4为例,假设目标图像b中的目标像素b11在输入图像a中对应中心像素c22,确定的滤波核类型对应双三次插值的滤波核函数,确定的滤
波核尺寸为4*4,则输入图像a在滤波核尺寸范围内包括16个原始像素,分别为a11、a12、a13、a14、a21、a22、a23、a24、a31、a32、a33、a34、a41、a42、a43、a44。根据这16个原始像素与中心像素c22之间的相对距离和/或相对方向,以及滤波核类型对应的滤波核函数,即可确定这16个原始像素对应的权重值。例如,根据原始像素a11与中心像素c22之间的相对距离和/或相对方向,以及双三次插值的滤波核函数,即可确定原始像素a11对应的权重值w11;又例如,根据原始像素a12与中心像素c22之间的相对距离和/或相对方向,以及双三次插值的滤波核函数,即可确定原始像素a12对应的权重值w12。依此类推,可分别确定16个原始像素对应的权重值w11、w12、w13、w14、w21、w22、w23、w24、w31、w32、w33、w34、w41、w42、w43、w44。
55.在05中,根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的权重值计算目标像素的像素值。仍以图4为例,根据滤波核尺寸范围内的16个原始像素的像素值,以及每个原始像素对应的权重值,可计算得到目标像素b11的像素值。例如,可采用16个原始像素的像素值,以及每个原始像素对应的权重值进行加权叠加的方式计算得到目标像素b11的像素值。即:b11=a11*w11+a12*w12+a13*w11+
……
+a42*w42+a43*w43+a44*w44。
56.请参阅图6,在某些实施方式中,获取目标图像中的目标像素在输入图像中对应的中心像素的位置(即01),包括:
57.011:根据目标像素在目标图像中的位置、输入图像的大小、以及目标图像的大小确定中心像素的位置。
58.请参阅图2,在某些实施方式中,后向位置计算模块10可用于实现011中的方法。也即是说,后向位置计算模块10可以用于根据目标像素在目标图像中的位置、输入图像的大小、以及目标图像的大小确定中心像素的位置。
59.具体地,目标像素在目标图像中的位置、输入图像的大小、以及目标图像的大小均为已知的。在一个例子中,求取中心像素的位置的公式如下所示:
60.center=n/s+(src_size-1)/2-(dst_size-1)/2s
61.其中,n为目标像素在目标图像中的位置,s为目标图像的大小与输入图像的大小的比值(即缩放比例),src_size为输入图像的大小,dst_size为目标图像的大小。需要指出的是,本技术实施方式中,像素在图像中的位置(例如,原始像素在输入图像中的位置,目标像素在目标图像中的位置,中心像素在目标图像中的位置)均采用像素的横坐标i(从0开始取值)和纵坐标j(从0开始取值)来表示。像素的横坐标表示像素的所在列,像素的纵坐标表示像素的所在行。例如,原始像素a11在输入图像中的位置为(0,0),原始像素a12在输入图像中的位置为(1,0),原始像素a21在输入图像中的位置为(0,1),原始像素a22在输入图像中的位置为(1,1)。目标像素b11在目标图像中的位置为(0,0),目标像素b12在目标图像中的位置为(1,0),目标像素b21在目标图像中的位置为(0,1),目标像素b22在目标图像中的位置为(1,1)。
62.以图4为例,可根据目标像素b11在目标图像中的位置(横坐标为0、纵坐标为0)、输入图像a的大小8*8、以及目标图像b的大小2*2确定目标像素b11对应的中心像素的位置,具体如下:
63.center(i)=0/(1/4)+(8-1)/2-(2-1)/[2*(1/4)]=1.5
[0064]
center(j)=0/(1/4)+(8-1)/2-(2-1)/[2*(1/4)]=1.5
[0065]
依此类推,可以分别获取目标图像中的每个目标像素在输入图像中对应的中心像素的位置。例如,可根据目标像素b12在目标图像中的位置(横坐标为1、纵坐标为0)、输入图像a的大小8*8、以及目标图像b的大小2*2确定目标像素b12对应的中心像素的位置,具体如下:
[0066]
center(i)=1/(1/4)+(8-1)/2-(2-1)/[2*(1/4)]=5.5
[0067]
center(j)=0/(1/4)+(8-1)/2-(2-1)/[2*(1/4)]=1.5
[0068]
又例如,可根据目标像素b21在目标图像中的位置(横坐标为0、纵坐标为1)、输入图像a的大小8*8、以及目标图像b的大小2*2确定目标像素b21对应的中心像素的位置,具体如下:
[0069]
center(i)=0/(1/4)+(8-1)/2-(2-1)/[2*(1/4)]=1.5
[0070]
center(j)=1/(1/4)+(8-1)/2-(2-1)/[2*(1/4)]=5.5
[0071]
再例如,可根据目标像素b22在目标图像中的位置(横坐标为1、纵坐标为1)、输入图像a的大小8*8、以及目标图像b的大小2*2确定目标像素b22对应的中心像素的位置,具体如下:
[0072]
center(i)=1/(1/4)+(8-1)/2-(2-1)/[2*(1/4)]=5.5
[0073]
center(j)=1/(1/4)+(8-1)/2-(2-1)/[2*(1/4)]=5.5
[0074]
可以理解,当目标图像包括更多个目标像素时,可采用同样的方式获取目标图像中的每个目标像素在输入图像中对应的中心像素的位置。上述方式中,求取的中心像素的位置较为准确,以便于后续根据原始像素与中心像素之间的位置关系获得合理的权重值,从而计算得到的目标像素的像素值也较为合理,目标图像具有尽可能少的混叠和较好的清晰度。
[0075]
请参阅图7,在某些实施方式中,确定用于对输入图像进行插值处理的滤波核类型(即02),包括:
[0076]
021:根据用户输入设置滤波核类型。
[0077]
请参阅图2,在某些实施方式中,滤波核选择模块20可用于实现021中的方法。也即是说,滤波核选择模块20可以用于根据用户输入设置滤波核类型。
[0078]
具体地,本技术实施方式可根据用户输入手动设置滤波核类型,例如滤波核类型可包括前述最近邻插值、均值插值、双线性插值、双三次插值、兰索斯插值的滤波核类型等。本技术实施方式根据对插值效果和插值速度的要求,可选择对应插值方式的滤波核类型,以获得期望的插值效果和/或插值速度。
[0079]
此外,本技术实施方式可对整幅输入图像采用相同的滤波核类型,这种实现方式算法更加简单,对硬件而言更加友好,只需采用较少的行缓存(line buffer)即可实现算法。
[0080]
请参阅图8,在某些实施方式中,确定用于对输入图像进行插值处理的滤波核类型(即02),包括:
[0081]
022:确定中心像素周围第一预定范围内的局部区域;
[0082]
023:计算局部区域的当前梯度值;
[0083]
024:计算局部区域的当前绝对差值和;
[0084]
025:根据当前梯度值、以及当前绝对差值和确定滤波核类型。
[0085]
请参阅图2,在某些实施方式中,滤波核选择模块20可用于实现022、023、024、025中的方法。也即是说,滤波核选择模块20可以用于:确定中心像素周围第一预定范围内的局部区域;计算局部区域的当前梯度值;计算局部区域的当前绝对差值和;根据当前梯度值、以及当前绝对差值和确定滤波核类型。
[0086]
具体地,本技术实施方式可通过自适应局部调整滤波核类型。首先,划定中心像素周围第一预定范围内的局部区域。第一预定范围可以刚好与滤波核尺寸范围相同(即第一预定范围根据滤波核尺寸范围确定),第一预定范围也可以大于滤波核尺寸范围或小于滤波核尺寸范围,或者每个第一预定范围覆盖两个滤波核尺寸范围,或者每个滤波核尺寸范围覆盖两个第一预定范围等。例如图4中滤波核尺寸为4*4,而本技术实施方式的第一预定范围可以为3*3、4*4、5*5、8*8等,在此不作限制。第一预定范围也可以根据经验值设定。与之对应地,局部区域为覆盖中心像素的3*3区域,或是覆盖中心像素的4*4区域,或是覆盖中心像素的5*5区域,或是覆盖中心像素的8*8区域等。然后,分别计算局部区域的当前梯度值、当前绝对差值和。其中,计算当前梯度值与计算当前绝对差值和的顺序不作限制,可以先计算当前梯度值,再计算当前绝对差值和;或者,先计算当前绝对差值和,再计算当前梯度值;或者,同时计算当前梯度值、当前绝对差值和。最后,根据当前梯度值、以及当前绝对差值和确定滤波核类型。可以理解,局部区域的当前梯度值、以及当前绝对差值和可以反映出局部区域的区域类型,例如局部区域为平坦区域、复杂纹理区域、还是方向性的区域等,从而采用合适的滤波核类型,使得插值处理后的目标图像具有较好的平滑性,减少锯齿的产生。
[0087]
此外,本技术实施方式可针对每个中心像素对应的局部区域分别计算当前梯度值、以及当前绝对差值和,从而确定该局部区域的滤波核类型。如此,不同的中心像素对应的局部区域所确定的滤波核类型可以是不一样的,可以更好地适应不同的局部区域的区域类型,采用更合适的滤波核类型。
[0088]
本技术实施方式,当第一预定范围与滤波核尺寸范围相同,即局部区域与滤波核尺寸范围的区域一致时,则后续在确定滤波核尺寸范围内的每个原始像素对应的权重值时,所采用的滤波核类型即为该局部区域对应的滤波核类型。若是第一预定范围大于滤波核尺寸范围或小于滤波核尺寸范围,即局部区域覆盖滤波核尺寸范围的区域或滤波核尺寸范围的区域覆盖局部区域时,则后续在确定滤波核尺寸范围内的每个原始像素对应的权重值时,所采用的滤波核类型可参考该局部区域对应的滤波核类型,例如前种情况可直接采用该局部区域对应的滤波核类型,而后种情况可根据相邻的多个局部区域对应的滤波核类型共同确定所采用的滤波核类型,例如将滤波核尺寸范围分块对应多个局部区域以适用不同的滤波核类型,或者根据多个局部区域对应的滤波核类型折中确定一个滤波核类型等。
[0089]
请参阅图9,在某些实施方式中,计算局部区域的当前梯度值(即023),包括:
[0090]
0231:根据预设图像梯度算法、以及局部区域内的多个原始像素的像素值计算当前梯度值。
[0091]
请参阅图2,在某些实施方式中,滤波核选择模块20可用于实现0231中的方法。也即是说,滤波核选择模块20可以用于根据预设图像梯度算法、以及局部区域内的多个原始像素的像素值计算当前梯度值。
[0092]
具体地,预设图像梯度算法可以为索贝尔(sobel)算子。索贝尔算子包括两组3*3的矩阵,分别为横向矩阵和纵向矩阵,如下所示:
[0093][0094]
将横向矩阵和纵向矩阵分别与图像作平面卷积,即可分别得出水平方向上的梯度值gx和垂直方向上的梯度值gy,再根据水平方向上的梯度值gx和垂直方向上的梯度值gy即可计算得到局部区域的当前梯度值getgrad。其中,或者也可简化为getgrad=|gx|+|gy|。
[0095]
如图10所示,以局部区域为覆盖中心像素的3*3区域为例(当局部区域为大于3*3的区域时,可以将局部区域划分为多个区块分别计算梯度值,再综合确定整个局部区域的当前梯度值),局部区域内的多个原始像素分别为a11、a12、a13、a21、a22、a23、a31、a32、a33,则gx、gy的计算方式如下:
[0096][0097][0098]
即gx=(a13-a11)+2*(a23-a21)+(a33-a31),gy=(a31-a11)+2*(a32-a12)+(a33-a13)。进一步地,当前梯度值getgrad=|(a13-a11)+2*(a23-a21)+(a33-a31)|+|(a31-a11)+2*(a32-a12)+(a33-a13)|。
[0099]
本技术实施方式中,预设图像梯度算法采用索贝尔算子,并结合局部区域内的多个原始像素的像素值计算当前梯度值,梯度计算方式简单、处理速度快,具有较好的边缘检测效果,而且对噪声具有平滑抑制作用。
[0100]
除了索贝尔算子,预设图像梯度算法也可以采用其他算子,例如拉普拉斯(laplacian)算子、蒲瑞维特(prewitt)算子、罗伯茨(roberts)算子、坎尼(canny)算子等,在此不作限制。以拉普拉斯算子为例,拉普拉斯算子的矩阵可以如下所示:
[0101][0102]
则当前梯度值getgrad的计算方式如下:
[0103][0104]
因此,当前梯度值getgrad=|8*a22-a11-a12-a13-a21-a23-a31-a32-a33|。
[0105]
请参阅图11,在某些实施方式中,计算局部区域的当前绝对差值和(即024),包括:
[0106]
0241:确定局部区域内与中心像素邻域的多个原始像素周围第二预定范围内的多个参考区域;
[0107]
0242:根据局部区域内的多个原始像素的像素值、以及多个参考区域内的多个原始像素的像素值分别计算中心像素多个不同方向上的初始绝对差值和;
[0108]
0243:根据多个不同方向上的初始绝对差值和确定当前绝对差值和。
[0109]
请参阅图2,在某些实施方式中,滤波核选择模块20可用于实现0241、0242、0243中的方法。也即是说,滤波核选择模块20可以用于:确定局部区域内与中心像素邻域的多个原始像素周围第二预定范围内的多个参考区域;根据局部区域内的多个原始像素的像素值、以及多个参考区域内的多个原始像素的像素值分别计算中心像素多个不同方向上的初始绝对差值和;根据多个不同方向上的初始绝对差值和确定当前绝对差值和。
[0110]
具体地,参考区域可以理解为局部区域的扩展区域。如图12所示,以局部区域为覆盖中心像素c33的3*3区域为例,局部区域内的9个原始像素分别为a22、a23、a24、a32、a33、a34、a42、a43、a44。其中,与中心像素c33邻域的8个原始像素分别为a22、a23、a24、a32、a34、a42、a43、a44。可以理解,与中心像素c33邻域的原始像素不包括中心像素c33所在区域的原始像素a33。以第二预定范围为3*3为例,则原始像素a22、a23、a24、a32、a34、a42、a43、a44周围3*3范围的8个参考区域分别为:原始像素a22对应的参考区域r1、原始像素a23对应的参考区域r2、原始像素a24对应的参考区域r3、原始像素a32对应的参考区域r4、原始像素a34对应的参考区域r5、原始像素a42对应的参考区域r6、原始像素a43对应的参考区域r7、原始像素a44对应的参考区域r8。
[0111]
根据局部区域内的多个原始像素的像素值、以及多个参考区域内的多个原始像素的像素值可分别计算中心像素多个不同方向上的初始绝对差值和。如前所述,局部区域内包括9个原始像素a22、a23、a24、a32、a33、a34、a42、a43、a44。
[0112]
以参考区域r1为例,参考区域r1内包括9个原始像素a11、a12、a13、a21、a22、a23、a31、a32、a33。根据局部区域内的9个原始像素的像素值、以及参考区域r1内的9个原始像素的像素值可以计算出中心像素c33在第一方向上(即左上方向)的初始绝对差值和sad(0)。具体地,sad(0)=|a22-a11|+|a23-a12|+|a24-a13|+|a32-a21|+|a33-a22|+|a34-a23|+|a42-a31|+|a43-a32|+|a44-a33|。
[0113]
以参考区域r2为例,参考区域r2内包括9个原始像素a12、a13、a14、a22、a23、a24、a32、a33、a34。根据局部区域内的9个原始像素的像素值、以及参考区域r2内的9个原始像素的像素值可以计算出中心像素c33在第二方向上(即中上方向)的初始绝对差值和sad(1)。具体地,sad(1)=|a22-a12|+|a23-a13|+|a24-a14|+|a32-a22|+|a33-a23|+|a34-a24|+|a42-a32|+|a43-a33|+|a44-a34|。
[0114]
依此类推,根据局部区域内的9个原始像素的像素值、以及参考区域r3内的9个原始像素的像素值可以计算出中心像素c33在第三方向上(即右上方向)的初始绝对差值和sad(2),根据局部区域内的9个原始像素的像素值、以及参考区域r4内的9个原始像素的像素值可以计算出中心像素c33在第四方向上(即左中方向)的初始绝对差值和sad(3),根据局部区域内的9个原始像素的像素值、以及参考区域r5内的9个原始像素的像素值可以计算出中心像素c33在第五方向上(即右中方向)的初始绝对差值和sad(4),根据局部区域内的9个原始像素的像素值、以及参考区域r6内的9个原始像素的像素值可以计算出中心像素c33在第六方向上(即左下方向)的初始绝对差值和sad(5),根据局部区域内的9个原始像素的像素值、以及参考区域r7内的9个原始像素的像素值可以计算出中心像素c33在第七方向上(即中下方向)的初始绝对差值和sad(6),根据局部区域内的9个原始像素的像素值、以及参考区域r8内的9个原始像素的像素值可以计算出中心像素c33在第八方向上(即右下方向)的初始绝对差值和sad(7)。
[0115]
根据多个不同方向上的初始绝对差值和可确定当前绝对差值和。也即是说,根据多个初始绝对差值和sad(0)、sad(1)、sad(2)、sad(3)、sad(4)、sad(5)、sad(6)、sad(7)可以确定当前绝对差值和getsad。例如,可以将多个初始绝对差值和中的最大值作为当前绝对差值和,具体计算公式如下:
[0116]
getsad=max(sad(0),

,sad(7))
[0117]
将多个初始绝对差值和中的最大值作为当前绝对差值和,可以很好地反映出局部区域的变化特点,以便于准确判断局部区域的边缘类型。当然,在其他例子中,也可以将多个初始绝对差值和的平均值作为当前绝对差值和,或者将多个初始绝对差值和中的众数作为当前绝对差值和,在此不作限制。
[0118]
请参阅图13,在某些实施方式中,根据当前梯度值、以及当前绝对差值和确定滤波核类型(即025),包括:
[0119]
0251:根据当前梯度值与梯度阈值之间的关系、以及当前绝对差值和与绝对差值和阈值之间的关系确定局部区域的区域类型;
[0120]
0252:根据区域类型采用对应的滤波核类型。
[0121]
请参阅图2,在某些实施方式中,滤波核选择模块20可用于实现0251、0252中的方法。也即是说,滤波核选择模块20可以用于:根据当前梯度值与梯度阈值之间的关系、以及当前绝对差值和与绝对差值和阈值之间的关系确定局部区域的区域类型;根据区域类型采用对应的滤波核类型。
[0122]
具体地,本技术实施方式根据针对当前梯度值、以及当前绝对差值和分别设置对应的阈值进行比较,从而确定局部区域的区域类型,以根据区域类型的不同采用合适的滤波核类型,可使得插值处理后的目标图像具有较好的平滑性,减少锯齿的产生。
[0123]
在一个例子中,当前梯度值getgrad用于与梯度阈值gradthr进行比较,当前绝对差值和getsad用于与绝对差值和阈值sadthr进行比较。其中,当前绝对差值和getsad可以为前述多个初始绝对差值和中的最大值maxsad。(1)若当前梯度值getgrad小于梯度阈值gradthr、且当前绝对差值和getsad小于绝对差值和阈值sadthr,则说明局部区域为平坦区域,此时可采用双三次插值的滤波核。(2)若当前梯度值getgrad大于梯度阈值gradthr、且当前绝对差值和getsad大于绝对差值和阈值sadthr,则说明局部区域为复杂纹理区域,此时可采用双三次插值的滤波核。(3)若当前梯度值getgrad小于梯度阈值gradthr、且当前绝对差值和getsad大于绝对差值和阈值sadthr,则说明局部区域为方向性的区域,此时可采用双三次插值或双线性插值的滤波核。(4)若当前梯度值getgrad大于梯度阈值gradthr、且当前绝对差值和getsad小于绝对差值和阈值sadthr,则说明局部区域为其他区域,此时可采用双三次插值的滤波核。其中,当前梯度值getgrad与梯度阈值gradthr相等,和/或当前绝对差值和getsad与绝对差值和阈值sadthr相等的情况可以增加至上述任意一种分类,并采用对应的滤波核类型,在此不作限制。例如,当前梯度值getgrad小于或等于梯度阈值gradthr、且当前绝对差值和getsad小于或等于绝对差值和阈值sadthr,则说明局部区域为平坦区域,此时可采用双三次插值的滤波核。
[0124]
进一步地,在当前梯度值getgrad小于梯度阈值gradthr、且当前绝对差值和getsad大于绝对差值和阈值sadthr时,具体是采用双三次插值还是双线性插值的滤波核,可以结合多个不同方向上的初始绝对差值和之间的差异。当多个不同方向上的初始绝对差
值和之间的差异较大(例如大于预定值)时,可采用双三次插值的滤波核;当多个不同方向上的初始绝对差值和之间的差异较小(例如小于预定值)时,可采用双线性插值的滤波核。或者,具体是采用双三次插值还是双线性插值的滤波核,可以结合用户对目标图像的需求。当用户希望效果优先时,可以采用双三次插值的滤波核,以保证出图效果;当用户希望性能优先时,可以采用双线性插值的滤波核,以保证出图速度。
[0125]
请参阅图14,在某些实施方式中,根据当前梯度值、以及当前绝对差值和确定滤波核类型(即025),包括:
[0126]
0253:当当前梯度值小于梯度阈值、且当前绝对差值和小于绝对差值和阈值时,采用双三次插值的滤波核;
[0127]
0254:当当前梯度值大于梯度阈值、且当前绝对差值和大于绝对差值和阈值时,采用双三次插值的滤波核;
[0128]
0255:当当前梯度值小于梯度阈值、且当前绝对差值和大于绝对差值和阈值时,采用双三次插值或双线性插值的滤波核;
[0129]
0256:当当前梯度值大于梯度阈值、且当前绝对差值和小于绝对差值和阈值时,采用双三次插值的滤波核。
[0130]
请参阅图2,在某些实施方式中,滤波核选择模块20可用于实现0253、0254、0255、0256中的方法。也即是说,滤波核选择模块20可以用于:当当前梯度值小于梯度阈值、且当前绝对差值和小于绝对差值和阈值时,采用双三次插值的滤波核;当当前梯度值大于梯度阈值、且当前绝对差值和大于绝对差值和阈值时,采用双三次插值的滤波核;当当前梯度值小于梯度阈值、且当前绝对差值和大于绝对差值和阈值时,采用双三次插值或双线性插值的滤波核;当当前梯度值大于梯度阈值、且当前绝对差值和小于绝对差值和阈值时,采用双三次插值的滤波核。
[0131]
具体地,如前所述,若当前梯度值小于梯度阈值、且当前绝对差值和小于绝对差值和阈值,则说明局部区域为平坦区域,此时可采用双三次插值的滤波核。若当前梯度值大于梯度阈值、且当前绝对差值和大于绝对差值和阈值,则说明局部区域为复杂纹理区域,此时可采用双三次插值的滤波核。若当前梯度值小于梯度阈值、且当前绝对差值和大于绝对差值和阈值,则说明局部区域为方向性的区域,此时可采用双三次插值或双线性插值的滤波核。若当前梯度值大于梯度阈值、且当前绝对差值和小于绝对差值和阈值,则说明局部区域为其他区域,此时可采用双三次插值的滤波核。
[0132]
请参阅图15,在某些实施方式中,根据目标图像与输入图像的缩放比例确定用于对输入图像进行插值处理的滤波核尺寸(即03),包括:
[0133]
031:根据缩放比例、以及对应的取整函数确定滤波核尺寸;或者
[0134]
032:根据缩放比例、尺寸调整因子、以及对应的取整函数确定滤波核尺寸。
[0135]
请参阅图2,在某些实施方式中,滤波核尺寸设置模块30可用于实现031、032中的方法。也即是说,滤波核尺寸设置模块30可以用于:根据缩放比例、以及对应的取整函数确定滤波核尺寸;或者根据缩放比例、尺寸调整因子、以及对应的取整函数确定滤波核尺寸。
[0136]
具体地,确定滤波核尺寸即是为了确认用于插值的原始像素的数目。由于输入图像和目标图像的大小均是不固定的,因此,目标图像与输入图像的缩放比例也通常是不固定的。例如,当输入图像的大小为8*8时,在一些情况下,用户希望得到的目标图像的大小为
4*4,此时目标图像与输入图像的缩放比例为1/2;在另一些情况下,用户希望得到的目标图像的大小为2*2,此时目标图像与输入图像的缩放比例为1/4。本技术实施方式可调整滤波核尺寸,以适应目标图像与输入图像不同的缩放比例。
[0137]
首先,需要计算目标图像与输入图像的缩放比例,如下所示:
[0138]
scaleratio=outsize/inputsize
[0139]
其中,scaleratio为缩放比例,outsize为目标图像的大小,inputsize为输入图像的大小。
[0140]
在确定缩放比例后至少可以通过031、032两种方式确定滤波核尺寸。在031中,根据缩放比例、以及对应的取整函数确定滤波核尺寸,如下所示:
[0141]
kernel size=ceil(1/scaleratio)
[0142]
其中,kernel size为滤波核尺寸,ceil为取整函数,具体可为向上取整函数。例如,当缩放比例scaleratio为1/5时,则滤波核尺寸kernel size等于5(滤波核尺寸范围即为5*5,依此类推);又例如,当缩放比例scaleratio为2/11时,则滤波核尺寸kernel size等于6。
[0143]
在032中,根据缩放比例、尺寸调整因子、以及对应的取整函数确定滤波核尺寸,如下所示:
[0144][0145]
其中,kernel size为滤波核尺寸,ceil为取整函数,具体可为向上取整函数,n为尺寸调整因子。尺寸调整因子n为整数,可以根据实际需要或者经验值进行调整。尺寸调整因子n的数值越大,得到的滤波核尺寸kernel size就越大,目标图像越平滑。通常情况下,n等于3。例如,当缩放比例scaleratio为1/5时,则滤波核尺寸kernel size等于8;又例如,当缩放比例scaleratio为2/11时,则滤波核尺寸kernel size等于9。
[0146]
在上述两种方式中,由于插值时使用的滤波核函数在效果上的限制,滤波核尺寸kernel size优选为大于或等于4。也即是说,若根据ceil(1/scaleratio)计算得到的滤波核尺寸kernel size小于4,或是根据计算得到的滤波核尺寸kernel size小于4,则滤波核尺寸kernel size取值为4。例如,当根据ceil(1/scaleratio)、计算得到的滤波核尺寸kernel size等于1、2、3时,滤波核尺寸kernel size均取值为4。
[0147]
本技术实施方式采用自适应可变滤波核尺寸的方案,在不同的目标图像与输入图像的缩放比例的情况下,设置不同的滤波核尺寸,使得图像取得较优的抗混叠效果。进一步地,采用上述两种不同的方式确定滤波核尺寸对图像质量有不同的影响。采用031的方式对图像消除混叠现象的效果较好,且图像具有较好的清晰度,而采用032的方式图像更平滑。
[0148]
请参阅图16,在某些实施方式中,根据多个原始像素与中心像素之间的位置关系、以及滤波核类型确定滤波核尺寸范围内的每个原始像素对应的权重值(即04),包括:
[0149]
041:计算多个原始像素与中心像素之间的当前距离;
[0150]
042:根据多个原始像素与中心像素之间的当前距离、以及滤波核类型对应的滤波核函数确定滤波核尺寸范围内的每个原始像素对应的权重值。
[0151]
请参阅图2,在某些实施方式中,滤波核权值设置模块40可用于实现041、042中的方法。也即是说,滤波核权值设置模块40可以用于:计算多个原始像素与中心像素之间的当前距离;根据多个原始像素与中心像素之间的当前距离、以及滤波核类型对应的滤波核函数确定滤波核尺寸范围内的每个原始像素对应的权重值。
[0152]
具体地,在经过02、03后,已经确定了滤波核类型、以及滤波核尺寸,本技术实施方式用于确定滤波核尺寸范围内的每个原始像素对应的权重值,以便于后续计算目标像素的像素值。本技术实施方式中,滤波核尺寸范围内的每个原始像素对应的权重值由原始像素与中心像素之间的当前距离、以及滤波核类型对应的滤波核函数确定,根据不同的当前距离匹配设置不同的权重值,从而使得各个原始像素对应的权重值设置得较为合理。在一个例子中,当当前距离越大时,原始像素对应的权重值则越小;当当前距离越小时,原始像素对应的权重值则越大。
[0153]
仍以图4为例,假设目标图像b中的目标像素b11在输入图像a中对应中心像素c22,定的滤波核尺寸为4*4,则输入图像a在滤波核尺寸范围内包括16个原始像素,分别为a11、a12、a13、a14、a21、a22、a23、a24、a31、a32、a33、a34、a41、a42、a43、a44。多个原始像素与中心像素之间的当前距离即为:a11与c22之间的当前距离、a12与c22之间的当前距离
……
a22与c22之间的当前距离
……
a43与c22之间的当前距离、a44与c22之间的当前距离。根据这16个当前距离,再结合滤波核类型对应的滤波核函数,即可确定这16个原始像素分别对应的权重值。
[0154]
请参阅图17,在某些实施方式中,计算多个原始像素与中心像素之间的当前距离(即041),包括:
[0155]
0411:计算多个原始像素与中心像素之间的初始距离,并将初始距离作为当前距离;或者
[0156]
0412:计算多个原始像素与中心像素之间的初始距离,并根据初始距离以及距离调整因子确定当前距离。
[0157]
请参阅图2,在某些实施方式中,滤波核权值设置模块40可用于实现0411、0412中的方法。也即是说,滤波核权值设置模块40可以用于:计算多个原始像素与中心像素之间的初始距离,并将初始距离作为当前距离;或者计算多个原始像素与中心像素之间的初始距离,并根据初始距离以及距离调整因子确定当前距离。
[0158]
具体地,本技术实施方式有两种方式确定多个原始像素与中心像素之间的当前距离。首先,计算多个原始像素与中心像素之间的初始距离,计算公式如下:
[0159]
distance=pos(ij0-c
[0160]
其中,distance为原始像素与中心像素之间的初始距离,pos(ij0为原始像素的位置(横坐标为i,纵坐标为j),c为中心像素的位置。例如,原始像素a11与中心像素c22之间的初始距离为a11-c22,原始像素a12与中心像素c22之间的初始距离为a12-c22。
[0161]
在得到初始距离之后,有如下两种方式确定当前距离distancem。
[0162]
第一种方式直接将初始距离distance作为当前距离distancem,即:
[0163]
distancem=distance
[0164]
例如,原始像素a11与中心像素c22之间的初始距离为a11-c22,则原始像素a11与中心像素c22之间的当前距离为a11-c22;原始像素a12与中心像素c22之间的初始距离为
a12-c22,则原始像素a12与中心像素c22之间的当前距离为a12-c22。
[0165]
第二种方式根据初始距离distance以及距离调整因子f确定当前距离distancem,具体如下所示:
[0166]
distancem=distance*f
[0167]
例如,原始像素a11与中心像素c22之间的初始距离为a11-c22,则原始像素a11与中心像素c22之间的当前距离为f*(a11-c22);原始像素a12与中心像素c22之间的初始距离为a12-c22,则原始像素a12与中心像素c22之间的当前距离为f*(a12-c22)。
[0168]
其中,采用第一种方式确定当前距离有利于简化计算量,而采用第二种方式确定当前距离,通过对距离调整因子f进行调试,可使得图像具有较好的抗混叠效果和较好的清晰度,具体方式可以根据实际进行选择。
[0169]
在得到当前距离之后,可根据每个原始像素与中心像素之间的当前距离、以及滤波核类型对应的滤波核函数确定各个原始像素对应的权重值,如下所示:
[0170]
w(ij)=kernel(distancem(ij))
[0171]
其中,w(ij)为原始像素(横坐标为i,纵坐标为j)对应的权重值,kernel为滤波核类型对应的滤波核函数,distancem(ij)为原始像素(横坐标为i,纵坐标为j)与中心像素之间的当前距离。例如,当滤波核类型为双三次插值时,滤波核函数即为双三次插值对应的滤波核函数,将当前距离distancem(ij)代入到构造的双三次插值的滤波核函数中,即可得出对应的权重值w(ij)。
[0172]
请参阅图18,在某些实施方式中,根据多个原始像素与中心像素之间的位置关系、以及滤波核类型确定滤波核尺寸范围内的每个原始像素对应的权重值(即04),包括:
[0173]
043:计算多个原始像素与中心像素之间的当前距离;
[0174]
044:根据多个原始像素与中心像素之间的当前距离、以及滤波核类型对应的滤波核函数确定滤波核尺寸范围内的每个原始像素对应的距离权重值;
[0175]
045:确定多个原始像素与中心像素之间的相对方向;
[0176]
046:根据多个原始像素与中心像素之间的相对方向、以及不同方向上的初始绝对差值和确定滤波核尺寸范围内的每个原始像素对应的方向权重值;
[0177]
047:根据滤波核尺寸范围内的每个原始像素对应的距离权重值以及对应的方向权重值确定每个原始像素对应的权重值。
[0178]
请参阅图2,在某些实施方式中,滤波核权值设置模块40可用于实现043、044、045、046、047中的方法。也即是说,滤波核权值设置模块40可以用于:计算多个原始像素与中心像素之间的当前距离;根据多个原始像素与中心像素之间的当前距离、以及滤波核类型对应的滤波核函数确定滤波核尺寸范围内的每个原始像素对应的距离权重值;确定多个原始像素与中心像素之间的相对方向;根据多个原始像素与中心像素之间的相对方向、以及不同方向上的初始绝对差值和确定滤波核尺寸范围内的每个原始像素对应的方向权重值;根据滤波核尺寸范围内的每个原始像素对应的距离权重值以及对应的方向权重值确定每个原始像素对应的权重值。
[0179]
具体地,前述实施方式中对041、042的解释说明同样适用于本技术实施方式的043、044,在此不再展开说明。其中,042中每个原始像素对应的权重值w(ij)即为044中每个原始像素对应的距离权重值,为了便于与每个原始像素对应的方向权重值区分,本技术实
施方式中将距离权重值用w1(ij)表示,将方向权重值用w2(ij)表示。
[0180]
由前述介绍可知,距离权重值w1(ij)=kernel(distancem(ij)),下面主要介绍方向权重值用w2(ij)的计算方式,以及根据每个原始像素对应的距离权重值以及对应的方向权重值综合确定每个原始像素对应的权重值的方式。
[0181]
本技术实施方式中,每个原始像素对应的方向权重值可根据各个原始像素与中心像素之间的相对方向、以及不同方向上的初始绝对差值和确定,即对于中心像素周围的各个原始像素,依据其所在的不同方向给予不同的方向权重值。不同方向上的初始绝对差值和即为前述sad(0)、sad(1)、sad(2)、sad(3)、sad(4)、sad(5)、sad(6)、sad(7),得到多个原始像素与中心像素之间的相对方向后,即可结合不同方向上的初始绝对差值和确定滤波核尺寸范围内的每个原始像素对应的方向权重值,具体计算方式可以如下:
[0182]
w2(ij)=1/sad(k)
[0183]
仍以图4为例,假设目标图像b中的目标像素b11在输入图像a中对应中心像素c22,定的滤波核尺寸为4*4,则输入图像a在滤波核尺寸范围内包括16个原始像素,分别为a11、a12、a13、a14、a21、a22、a23、a24、a31、a32、a33、a34、a41、a42、a43、a44。如图19所示,原始像素a11对应的方向权重值w2(11)=1/sad(0),原始像素a12对应的方向权重值w2(12)=1/sad(1),原始像素a13对应的方向权重值w2(13)=1/sad(1),原始像素a14对应的方向权重值w2(14)=1/sad(2),原始像素a21对应的方向权重值w2(21)=1/sad(3),原始像素a22对应的方向权重值w2(22)=1,原始像素a23对应的方向权重值w2(23)=1,原始像素a24对应的方向权重值w2(24)=1/sad(4),原始像素a31对应的方向权重值w2(31)=1/sad(3),原始像素a32对应的方向权重值w2(32)=1,原始像素a33对应的方向权重值w2(33)=1,原始像素a34对应的方向权重值w2(34)=1/sad(4),原始像素a41对应的方向权重值w2(41)=1/sad(5),原始像素a42对应的方向权重值w2(42)=1/sad(6),原始像素a43对应的方向权重值w2(43)=1/sad(6),原始像素a44对应的方向权重值w2(44)=1/sad(7)。
[0184]
可以理解,方向权重值w2(ij)的计算方式并不限于此,例如还可以根据w2(ij)=1/guass(sad(k))确定。其中,guass为高斯函数,具体算法可根据需要进行设置。
[0185]
此外,当滤波核尺寸不为4*4时,也可采用类似方式,依据各个原始像素所在的不同方向,与各个方向上的初始绝对差值和对应(可以是多个原始像素同时对应一个初始绝对差值和,例如上述例子中,原始像素a12、原始像素a13均对应初始绝对差值和sad(1),原始像素a21、原始像素a31均对应初始绝对差值和sad(3),原始像素a24、原始像素a34均对应初始绝对差值和sad(4),原始像素a42、原始像素a43均对应初始绝对差值和sad(6)),从而给予不同的方向权重值。
[0186]
在得到方向权重值w2(ij)后,可根据每个原始像素对应的距离权重值w1(ij)以及对应的方向权重值w2(ij)综合确定每个原始像素对应的权重值w(ij),具体计算方式如下:
[0187]
w(ij)=w1(ij)*w2(ij)
[0188]
例如,原始像素a11对应的权重值为:
[0189][0190]
依此类推,可分别计算出原始像素a12、a13、a14、a21、a22、a23、a24、a31、a32、a33、a34、a41、a42、a43、a44对应的权重值,在此不一一展开说明。
[0191]
可以理解,前述实施方式中,直接将每个原始像素对应的距离权重值作为最终的权重值,对硬件更加友好,计算量更小。而本技术实施方式中,根据每个原始像素对应的距离权重值以及对应的方向权重值综合确定最终的权重值,可使得插值处理后的图像具有较好的抗混叠效果和较好的清晰度。
[0192]
请参阅图20,在某些实施方式中,下采样方法用于根据输入图像输出中间图像,并根据中间图像输出目标图像。中间图像包括多个中间像素。每个原始像素对应的权重值包括水平权重值和垂直权重值。根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的权重值计算目标像素的像素值(即05),包括:
[0193]
051:根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的水平权重值进行水平插值处理得到多个中间像素的像素值;
[0194]
052:根据多个中间像素的像素值、以及每个中间像素对应的垂直权重值进行垂直插值处理得到目标像素的像素值;或者
[0195]
053:根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的垂直权重值进行垂直插值处理得到多个中间像素的像素值;
[0196]
054:根据多个中间像素的像素值、以及每个中间像素对应的水平权重值进行水平插值处理得到目标像素的像素值。
[0197]
请参阅图2,在某些实施方式中,下采样方法用于根据输入图像输出中间图像,并根据中间图像输出目标图像。中间图像包括多个中间像素。每个原始像素对应的权重值包括水平权重值和垂直权重值。水平及垂直方向计算模块50可用于实现051、052、053、054中的方法。也即是说,水平及垂直方向计算模块50可以用于:根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的水平权重值进行水平插值处理得到多个中间像素的像素值;根据多个中间像素的像素值、以及每个中间像素对应的垂直权重值进行垂直插值处理得到目标像素的像素值;或者根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的垂直权重值进行垂直插值处理得到多个中间像素的像素值;根据多个中间像素的像素值、以及每个中间像素对应的水平权重值进行水平插值处理得到目标像素的像素值。
[0198]
具体地,本技术实施方式先对输入图像进行水平插值处理得到中间图像,再对中间图像进行垂直插值处理得到目标图像,或者先对输入图像进行垂直插值处理得到中间图像,再对中间图像进行水平插值处理得到目标图像。这种依次进行水平插值处理、垂直插值处理的方式只需采用较少的行缓存(line buffer)即可实现算法,对硬件而言更加友好。
[0199]
如图21所示,当先进行水平插值处理、再进行垂直插值处理时,先对8*8的输入图像a进行水平插值处理,得到4*8的中间图像m,再对4*8的中间图像m进行垂直插值处理得到4*4的目标图像b。如图22所示,当先进行垂直插值处理、再进行水平插值处理时,先对8*8的输入图像a进行垂直插值处理,得到8*4的中间图像m,再对8*4的中间图像m进行水平插值处理得到4*4的目标图像b。
[0200]
为了得到目标图像b,需要求出目标图像b中每个目标像素的像素值。以图4为例,目标图像b包括目标像素b11、b12、b21、b22,则需要分别求出这4个目标像素的像素值。下面以求出目标像素b11的像素值为例进行说明,可以理解,其余目标像素b12、b21、b22的像素值可采用类似方式确定。
[0201]
在确定目标像素b11的像素值时,首先根据前述方式确定目标像素b11在输入图像a中对应的中心像素c22的位置,确定进行插值处理的滤波核类型(例如采用双三次插值的滤波核),确定进行插值处理的滤波核尺寸(例如4*4滤波核尺寸范围内),然后确定滤波核尺寸范围内每个原始像素对应的权重值,即16个原始像素a11~a44各自对应的权重值。其中,每个原始像素对应的权重值分为水平权重值(即横坐标的权重值)和垂直权重值(即纵坐标的权重值)。最后根据滤波核尺寸范围内的16个原始像素的像素值、以及对应的权重值进行加权平均得到目标像素b11的像素值。例如,具体计算公式可如下所示:
[0202][0203][0204]
其中,imid为中间像素的像素值,i为原始像素的像素值,idst为目标像素的像素值,i、j分别为原始像素的横坐标和纵坐标,w(i)为水平权重值,w(j)为垂直权重值。
[0205]
当时,上述公式可简化为:
[0206][0207][0208]
同理,当先进行垂直插值处理、再进行水平插值时,可采用如下计算公式:
[0209][0210][0211]
或者简化为:
[0212][0213][0214]
请参阅图23,在某些实施方式中,每个原始像素对应的权重值包括水平权重值和垂直权重值。根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的权重值计算目标像素的像素值(即05),包括:
[0215]
055:根据每个原始像素对应的水平权重值以及对应的垂直权重值计算每个原始像素对应的综合权重值;
[0216]
056:根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的综合权重值进行插值处理得到目标像素的像素值。
[0217]
请参阅图2,在某些实施方式中,每个原始像素对应的权重值包括水平权重值和垂直权重值。水平及垂直方向计算模块50可用于实现055、056中的方法。也即是说,水平及垂直方向计算模块50可以用于:根据每个原始像素对应的水平权重值以及对应的垂直权重值计算每个原始像素对应的综合权重值;根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的综合权重值进行插值处理得到目标像素的像素值。
[0218]
具体地,本技术实施方式直接对输入图像进行插值处理得到目标图像,该插值处理的过程同时包括了水平插值和垂直插值,该方式可以更好地保证出图效果。具体计算公式可以如下所示:
[0219][0220]
其中,idst为目标像素的像素值,i为原始像素的像素值,i、j分别为原始像素的横坐标和纵坐标,w(δi)为水平权重值,w(δj)为垂直权重值。本技术实施方式中的综合权重值即为水平权重值w(δi)*垂直权重值w(δj)。
[0221]
请参阅图24,在某些实施方式中,计算局部区域的当前梯度值(即023),包括:
[0222]
0232:计算局部区域的当前亮度梯度值;
[0223]
计算局部区域的当前绝对差值和(即024),包括:
[0224]
0244:计算局部区域的当前亮度绝对差值和;
[0225]
根据当前梯度值、以及当前绝对差值和确定滤波核类型(即025),包括:
[0226]
0257:根据当前亮度梯度值、以及当前亮度绝对差值和确定滤波核类型。
[0227]
请参阅图2,在某些实施方式中,滤波核选择模块20可用于实现0232、0244、0257中的方法。也即是说,滤波核选择模块20可以用于:计算局部区域的当前亮度梯度值;计算局部区域的当前亮度绝对差值和;根据当前亮度梯度值、以及当前亮度绝对差值和确定滤波核类型。
[0228]
具体地,每个原始像素的像素值均可包括亮度值(y值)和色度值(uv值)。本技术实施方式在确定滤波核类型时,所计算的当前梯度值、以及当前绝对差值和可均依据亮度值得到,即当前梯度值为当前亮度梯度值,当前绝对差值和为当前亮度绝对差值和。亮度值可以很好地体现局部区域的灰度变化,从而得到合理的当前梯度值、以及当前绝对差值和,后续对区域类型的判断以及滤波核类型的选择也较为合理。可以理解,当输入图像不为yuv图像时,例如当输入图像为rgb图像时,可以通过转化得到yuv图像,从而得到yuv值。
[0229]
请参阅图25,在某些实施方式中,计算局部区域的当前梯度值(即023),包括:
[0230]
0233:计算局部区域的当前亮度梯度值、以及当前色度梯度值;
[0231]
计算局部区域的当前绝对差值和(即024),包括:
[0232]
0245:计算局部区域的当前亮度绝对差值和、以及当前色度绝对差值和;
[0233]
根据当前梯度值、以及当前绝对差值和确定滤波核类型(即025),包括:
[0234]
0258:根据当前亮度梯度值、以及当前亮度绝对差值和确定亮度滤波核类型;
[0235]
0259:根据当前亮度梯度值、以及当前亮度绝对差值和确定色度滤波核类型;
[0236]
0260:根据亮度滤波核类型、色度滤波核类型、以及滤波核置信度确定滤波核类型。
[0237]
请参阅图2,在某些实施方式中,滤波核选择模块20可用于实现0233、0245、0258、
0259、0260中的方法。也即是说,滤波核选择模块20可以用于:计算局部区域的当前亮度梯度值、以及当前色度梯度值;计算局部区域的当前亮度绝对差值和、以及当前色度绝对差值和;根据当前亮度梯度值、以及当前亮度绝对差值和确定亮度滤波核类型;根据当前亮度梯度值、以及当前亮度绝对差值和确定色度滤波核类型;根据亮度滤波核类型、色度滤波核类型、以及滤波核置信度确定滤波核类型。
[0238]
具体地,本技术实施方式在确定滤波核类型时,所计算的当前梯度值、以及当前绝对差值和不仅依据亮度值,而且增加了色度值的因素,可以进一步提高当前梯度值、以及当前绝对差值和的准确性,后续对区域类型的判断以及滤波核类型的选择准确性也更高。其中,滤波核置信度可以是指亮度滤波核类型的置信度,也可以是指色度滤波核类型的置信度。以滤波核置信度为亮度滤波核类型的置信度为例,若是滤波核置信度较低(例如小于置信度阈值50%),即表明根据当前亮度梯度值、以及当前亮度绝对差值和确定的亮度滤波核类型不合理,则可以选用根据当前亮度梯度值、以及当前亮度绝对差值和确定的色度滤波核类型,即将色度滤波核类型作为进行插值处理的滤波核类型。
[0239]
综上,本技术实施方式的基于可变滤波核尺寸的下采样方法和下采样装置100至少具有如下优点:
[0240]
第一、采用自适应可变滤波核尺寸的方式来实现不同倍率的下采样,可变滤波核尺寸可使得图像在不同的采样倍率下均可取得较优的抗混叠效果和较好的清晰度。如图26所示,图26(a)、(b)、(c)均为采用固定的滤波核尺寸进行下采样的效果图。其中,图26(a)对应的滤波核尺寸为4,图26(b)对应的滤波核尺寸为6,图26(c)对应的滤波核尺寸为8。图26(d)为采用可变滤波核尺寸进行下采样的效果图,即根据目标图像与输入图像的缩放比例确定的滤波核尺寸。由图中可以看出,采用可变滤波核尺寸进行下采样可取得更优的抗混叠效果和更好的清晰度。
[0241]
第二、可采用自适应的方式来选择进行插值处理的滤波核类型,可以依据局部区域的图像信息(例如梯度值、绝对差值和)来判断局部区域的区域类型,从而采取更合适的滤波核类型来进行插值,同时可自适应确定用于插值的权重值,使得图像在直线或者边缘区域的平滑度更好,减少锯齿的产生。
[0242]
第三、可采用依次进行水平插值处理、垂直插值处理的方式进行下采样,只需采用较少的行缓存(line buffer)即可实现算法,对硬件而言更加友好。
[0243]
第四、采用本方案的下采样方法可实现任意倍率的下采样,且相较于背景技术中提到的业界增加预处理抗混叠滤波器的方案,具有更好的清晰度。如图27所示,图27(a)为业界增加预处理抗混叠滤波器的方案的效果图,图27(b)为采用本方案的效果图。由图中可以看出,采用本方案的下采样方法具有更好的清晰度。
[0244]
请参阅图28,本技术实施方式还提供一种电子设备200。电子设备200包括一个或多个处理器210和存储器220。存储器220存储有计算机程序,计算机程序被处理器210执行的情况下,实现上述任一实施方式的基于可变滤波核尺寸的下采样方法。
[0245]
例如,计算机程序被处理器210执行的情况下,实现如下的下采样方法:
[0246]
01:获取目标图像中的目标像素在输入图像中对应的中心像素的位置;
[0247]
02:确定用于对输入图像进行插值处理的滤波核类型;
[0248]
03:根据目标图像与输入图像的缩放比例确定用于对输入图像进行插值处理的滤
波核尺寸;其中,输入图像在滤波核尺寸范围内包括多个原始像素,中心像素位于滤波核尺寸范围内;
[0249]
04:根据多个原始像素与中心像素之间的位置关系、以及滤波核类型确定滤波核尺寸范围内的每个原始像素对应的权重值;
[0250]
05:根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的权重值计算目标像素的像素值。
[0251]
又例如,计算机程序被处理器210执行的情况下,实现如下的下采样方法:
[0252]
011:根据目标像素在目标图像中的位置、输入图像的大小、以及目标图像的大小确定中心像素的位置。
[0253]
本技术实施方式的电子设备200包括但不限于为手机、平板电脑、相机、个人数字助理、穿戴式设备、智能机器人、智能车辆、终端设备等。其中,穿戴式设备包括智能手环、智能手表、智能眼镜等。
[0254]
需要指出的是,前述实施方式中对基于可变滤波核尺寸的下采样方法和下采样装置100的解释说明同样适用于本技术实施方式的电子设备200,在此不再展开说明。
[0255]
请参阅图29,本技术实施方式还提供一种计算机可读存储介质300,其上存储有计算机程序310。程序310被处理器320执行的情况下,实现上述任一实施方式的基于可变滤波核尺寸的下采样方法。
[0256]
例如,程序310被处理器320执行的情况下,实现如下的下采样方法:
[0257]
01:获取目标图像中的目标像素在输入图像中对应的中心像素的位置;
[0258]
02:确定用于对输入图像进行插值处理的滤波核类型;
[0259]
03:根据目标图像与输入图像的缩放比例确定用于对输入图像进行插值处理的滤波核尺寸;其中,输入图像在滤波核尺寸范围内包括多个原始像素,中心像素位于滤波核尺寸范围内;
[0260]
04:根据多个原始像素与中心像素之间的位置关系、以及滤波核类型确定滤波核尺寸范围内的每个原始像素对应的权重值;
[0261]
05:根据滤波核尺寸范围内的多个原始像素的像素值、以及每个原始像素对应的权重值计算目标像素的像素值。
[0262]
又例如,程序310被处理器320执行的情况下,实现如下的下采样方法:
[0263]
011:根据目标像素在目标图像中的位置、输入图像的大小以及目标图像的大小确定中心像素的位置。
[0264]
需要指出的是,前述实施方式中对基于可变滤波核尺寸的下采样方法和下采样装置100的解释说明同样适用于本技术实施方式的计算机可读存储介质300,在此不再展开说明。
[0265]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结
合和组合。
[0266]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0267]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,计算机可读存储介质可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置)、便携式计算机盘盒(磁装置)、随机存取存储器(ram)、只读存储器(rom)、可擦除可编辑只读存储器(eprom或闪速存储器)、光纤装置、以及便携式光盘只读存储器(cdrom)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0268]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0269]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0270]
尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型,本技术的范围由权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1