图像滤波方法及装置与流程

文档序号:16685941发布日期:2019-01-22 18:19阅读:207来源:国知局
图像滤波方法及装置与流程

本申请涉及图像处理技术领域,特别是涉及一种图像滤波方法及装置。



背景技术:

随着图像处理技术领域的发展,出现了数字图像处理技术,这个技术通过取样和量化过程将一个以自然形式存在的图像变换为适合电子设备处理的数字形式,且一般通过矩阵的形式存储。在图像数据的传输过程中,不可避免会收到噪声的干扰,从而使图像失真,为了便于对图像进行边缘检测、图像分割和模式识别等处理,有必要对图像进行滤波。

中值滤波技术作为传统滤波技术之一,采用一定大小的窗口作为模板,使模板在矩阵形式的图像上进行滑动,每次滑动均取出图像中与模板重合的若干数据;对取出的若干数据进行排序,将排在中间的数据(即中值)覆盖图像与模板重合部分中心处的数据。

在实现过程中,发明人发现目前的技术中至少存在如下问题:传统中值滤波运算延迟大,导致图像滤波效率低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够降低运算延迟,提高图像滤波效率的图像滤波方法及装置。

为了实现上述目的,一方面,本发明实施例提供了一种图像滤波方法,包括步骤:

获取第一图像旧序号、第二图像旧序号、图像剩余区域及图像新区域;

第一图像旧序号包括第一模板的首行或首列中的各图像块对应的序号;图像剩余区域包括第一模板与第二模板的重合部分对应的各图像块;第二图像旧序号包括第一模板中图像剩余区域的各图像块对应的序号;图像新区域包括第二模板的尾行或尾列中的各图像块;第一模板为本次滑动前的滤波模板;第二模板为本次滑动后的滤波模板;

基于第二图像旧序号,统计分析第一比较结果,得到第二模板中图像剩余区域的各图像块对应的初步序号;

根据初步序号,统计分析第二比较结果,得到第二模板中图像剩余区域的各图像块对应的最终序号;

统计分析第二比较结果和第三比较结果,得到图像新区域的各图像块对应的新序号;

第一比较结果为第一图像旧序号与第二图像旧序号的比较结果;第二比较结果为图像新区域的图像块与图像剩余区域各图像块的大小比较结果;第三比较结果为图像新区域中各图像块之间的大小比较结果;

输出中间值序号对应的图像块的数据;中间值序号为新序号与最终序号中的中间值。

在其中一个实施例中,滤波模板为数组;其中,数组中的数据值与各图像块一一对应;

图像滤波方法还包括步骤:

在初次滑动前,初始化滤波模板,得到呈等差关系的各数据值;

初始化得到对应呈等差关系的各数据值的序号。

在其中一个实施例中,呈等差关系的各数据值依次为由1开始依次递增1的数值。

在其中一个实施例中,呈等差关系的各数据值的序号依次为由0开始依次递增1的数值。

在其中一个实施例中,基于第二图像旧序号,统计分析第一比较结果,得到第二模板中图像剩余区域的各图像块对应的初步序号的步骤包括:

依次将获取到的第一图像旧序号中的各序号与第二图像旧序号中的各序号进行比较,统计第二图像旧序号中的每个序号小于或等于第一图像旧序号中的序号的第一次数,得到第一比较结果;各初步序号由第二图像旧序号中的各序号减去相应的第一次数得到。

在其中一个实施例中,根据初步序号,统计分析第二比较结果,得到第二模板中图像剩余区域的各图像块对应的最终序号的步骤包括:

依次将获取到的图像新区域中的每个图像块与图像剩余区域中的各图像块进行比较,统计图像新区域中的每个图像块小于或等于图像剩余区域中的图像块的第二次数,得到第二比较结果;各最终序号由初步序号中的各序号减去相应的第二次数得到。

在其中一个实施例中,统计分析第二比较结果和第三比较结果,得到图像新区域的各图像块对应的新序号的步骤包括:

依次将获取到的图像新区域中的每个图像块与图像剩余区域中的各图像块进行比较,统计图像新区域中的每个图像块小于或等于图像剩余区域中的图像块的第二次数,得到第二比较结果;

在图像新区域中各图像块之间进行比较,统计图像新区域中每个图像块在比较时大于或等于图像新区域另外的各图像块的第三次数,还统计图像新区域中相同的图像块,得到第三比较结果;

各新序号由初始化时所分配到的最大序号减去各相应的第二次数、各相应的第三次数得到;

基于图像新区域中相同的图像块,处理新序号中相应的序号,使新序号中的序号各不相同。

在其中一个实施例中,图像新区域包括第一图像块、第二图像块和第三图像块;基于图像新区域中相同的图像块,处理新序号中相应的序号,使新序号中的序号各不相同的步骤包括:

在第一图像块与第二图像块相等时,第二图像块对应的序号加1;在第一图像块与第三图像块相等时,第三个图像块对应的序号加1;在第二图像块与第三图像块相等时,第三个图像块对应的序号加1。

一种图像滤波装置,包括:

数组寄存器,用于存储滤波模板中的数据值;

序号寄存器,用于存储与滤波模板中的数据值对应的序号;

第一比较电路,用于比较从序号寄存器获取到的第一图像旧序号和第二图像旧序号,得到第一比较结果;

第二比较电路,用于比较图像新区域和图像剩余区域之间各图像块的大小,得到第二比较结果;还用于比较图像新区域中各图像块的大小,得到第三比较结果;

统计比较结果电路,用于基于从序号寄存器中获取到的第二图像旧序号、统计分析第一比较结果得到初步序号;还用于统计分析第二比较结果,并结合初步序号,得到最终序号;还用于统计分析第二比较结果和第三比较结果得到新序号;还用于向序号寄存器中输出最终序号和新序号;还用于输出中间值序号对应的图像块。

在其中一个实施例中,还包括:

缓冲电路,用于缓冲输入的图像块;

数组寄存器还用于从缓冲电路中读取图像块。

上述技术方案中的一个技术方案具有如下优点和有益效果:通过序号代表数据值大小,每次滑动后直接通过第一图像旧序号和第二图像旧序号、图像新区域和图像剩余区域之间各图像块大小、图像剩余区域之间各图像块的大小的两两比较,统计分析得到最终序号和新序号,进而得到中间值序号,上述两两比较过程和统计分析过程可以并行进行,只需在一个时钟周期内即可完成运算,降低了运算延迟,提高了图像滤波效率。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为一个实施例中图像滤波方法的第一示意性流程示意图;

图2为一个实施例中图像滤波方法的第二示意性流程示意图;

图3为一个实施例中图像滤波装置的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

传统的中值滤波技术通过对取出的若干数据进行两两比较,从而得到中值,但是需要运算72次,即便利用fpga(fieldprogrammablegatearray,现场可编程门阵列)进行并行运算,加快运算速度,也不能避免占用运算资源过多。

还有另一种传统的中值滤波技术,以3*3大小的窗口为模板为例,对取出的若干数据进行排序获得中值的过程为:先比较3行的数据,得到每行最大值、中值和最小值;再通过比较获得每行最大值中的最小值,每行最小值中的最大值,每行中值中的中值;最后再比较上一步得到的3个值的中值,以最后得到的中值作为排在中间的数据。上述三个比较步骤中的后两个比较步骤需要用到上一步得出的数据,即便利用fpga(fieldprogrammablegatearray,现场可编程门阵列)进行并行运算,也难以避免数据传输不同步的状况,为了保证每一步比较的数据的准确性,需要设定三个比较步骤由时钟触发进行(具体为:将每一步的运算结果保存到寄存器中,再从寄存器中取出进行下一步运算,进而需要占用时钟周期来完成寄存器的存取过程),也即在排序过程中三个比较步骤串行进行,只能在3个时钟周期内完成运算,运算延迟过大,使得现有的中值滤波技术在图像滤波过程中效率低。

本申请提供的图像滤波方法,可以应用于各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备、基于fpga的设备或其他嵌入式设备中。

在一个实施例中,如图1所示,提供了一种图像滤波方法,包括以下步骤:

步骤102,获取第一图像旧序号、第二图像旧序号、图像剩余区域及图像新区域。

其中,第一图像旧序号包括第一模板的首行或首列中的各图像块对应的序号;图像剩余区域包括第一模板与第二模板的重合部分对应的各图像块;第二图像旧序号包括第一模板中图像剩余区域的各图像块对应的序号;图像新区域包括第二模板的尾行或尾列中的各图像块;第一模板为本次滑动前的滤波模板;第二模板为本次滑动后的滤波模板。

需要说明的是,本申请中的首行为沿本次滑动方向排列的第一行,尾行为沿本次滑动方向排列的最后一行;首列为沿本次滑动方向排列的第一列,尾列为沿本次滑动方向排列的最后一列。

当滑动方向为按行滑动时,第一图像旧序号包括第一模板的首行中的各图像块对应的序号;图像新区域包括第二模板的尾行中的各图像块;当滑动方向为按列滑动时,第一图像旧序号包括第一模板的首列中的各图像块对应的序号;图像新区域包括第二模板的尾列中的各图像块。

步骤s104,基于第二图像旧序号,统计分析第一比较结果,得到第二模板中图像剩余区域的各图像块对应的初步序号。

其中,第一比较结果为第一图像旧序号与第二图像旧序号的比较结果。

步骤s106,根据初步序号,统计分析第二比较结果,得到第二模板中图像剩余区域的各图像块对应的最终序号。

其中,第二比较结果为图像新区域的图像块与图像剩余区域各图像块的大小比较结果。

步骤s108,统计分析第二比较结果和第三比较结果,得到图像新区域的各图像块对应的新序号。

其中,第三比较结果为图像新区域中各图像块之间的大小比较结果。

步骤s110,输出中间值序号对应的图像块的数据。

其中,中间值序号为新序号与最终序号中的中间值。

需要说明的是,上述滤波模板可采用(2n+1)*(2n+1)大小的窗口,其中,n大于或等于1;上述滤波模板还可采用十字窗口、菱形窗口,可拓展性强。

上述图像滤波方法中,通过序号代表数据值大小,每次滑动后直接通过第一图像旧序号和第二图像旧序号、图像新区域和图像剩余区域之间各图像块大小、图像剩余区域之间各图像块的大小的两两比较,统计分析得到最终序号和新序号,进而得到中间值序号,上述两两比较过程和统计分析过程可以并行进行,只需在一个时钟周期内即可完成运算,降低了运算延迟,提高了图像滤波效率,利于图像的实时滤波处理,实时性高。除了得到序号为中值的数据以外,也间接得到其它序号的数据,提高了本发明的适用范围,应用范围广。

在一个实施例中,如图2所示,提供了一种图像滤波方法,包括以下步骤:

步骤s202,在初次滑动前,初始化滤波模板,得到各数据值为等差的数值;基于滤波模板中各数据值,初始化得到对应滤波模板中各数据值的序号。

其中,滤波模板为数组,数组中的数据值与各图像块一一对应;

步骤s204,依次将获取到的第一图像旧序号中的各序号与第二图像旧序号中的各序号进行比较,统计第二图像旧序号中的每个序号小于或等于第一图像旧序号中的序号的第一次数,得到第一比较结果;各初步序号由第二图像旧序号中的各序号减去相应的第一次数得到。

步骤s206,依次将获取到的图像新区域中的每个图像块与图像剩余区域中的各图像块进行比较,统计图像新区域中的每个图像块小于或等于图像剩余区域中的图像块的第二次数,得到第二比较结果;各最终序号由初步序号中的各序号减去相应的第二次数得到。

步骤s208,在图像新区域中各图像块之间进行比较,统计图像新区域中每个图像块在比较时大于或等于图像新区域另外的各图像块的第三次数,还统计图像新区域中相同的图像块,得到第三比较结果;各新序号由初始化时所分配到的最大序号减去各相应的第二次数、各相应的第三次数得到;

步骤s210,基于图像新区域中相同的图像块,处理新序号中相应的序号,使新序号中的序号各不相同。

步骤s212,输出中间值序号对应的图像块的数据。

其中,中间值序号为新序号与最终序号中的中间值。

进一步的,数组中呈等差关系的各数据值依次为由1开始依次递增1的数值;呈等差关系的各数据值的序号依次为由0开始依次递增1的数值。

进一步的,图像新区域包括第一图像块、第二图像块和第三图像块;基于图像新区域中相同的图像块,处理新序号中相应的序号,使新序号中的序号各不相同的步骤包括:

在第一图像块与第二图像块相等时,第二图像块对应的序号加1;在第一图像块与第三图像块相等时,第三个图像块对应的序号加1;在第二图像块与第三图像块相等时,第三个图像块对应的序号加1。

需要说明的是,上述提及的第一图像旧序号、第二图像旧序号、图像剩余区域及图像新区域、第一比较结果、第二比较结果和第三比较结果等特征已经在上一个实施例中进行说明,此处不再赘述。

下面结合一个具体的例子对上述实施例进行说明:

以滤波模板为3*3大小的数组,且滤波模板按列滑动为例:

在本次滑动时,去掉第一模板的首列,获取新的图像数据更新滤波模板;在本次滑动后,第一模板的第二列和第三列作为第二模板的第一列和第二列,新的图像数据作为第二模板的第三列。

图像剩余区域包括第一模板中第二列和第三列图像块,等同于包括第二模板中第一列和第二列图像块;第二图像旧序号包括第一模板中第二列和第三列中各图像块对应的序号;第一模板的首列为第一模板的第一列,第二模板的尾列为第二模板的第三列。

步骤s202具体包括:将滤波模板中的各数据值初始化为9至1;基于初始化后滤波模板中各数据值的大小,向滤波模板中的各数据值分配序号0至8。

需要说明的是,序号越小表示数据值越大。

步骤s204具体包括:第一模板的第二列第一行的图像块对应的序号分别与第一模板首列中的各图像块对应的序号的比较结果为:xu21_11、xu21_12、xu21_13;第一模板的第二列第二行的图像块对应的序号分别与第一模板首列中的各图像块对应的序号的比较结果为:xu22_11、xu22_12、xu22_13;第一模板的第二列第三行的图像块对应的序号分别与第一模板首列中的各图像块对应的序号的比较结果为:xu23_11、xu23_12、xu23_13;

第一模板的第三列第一行的图像块对应的序号分别与第一模板首列中的各图像块对应的序号的比较结果为:xu31_11,xu31_12,xu31_13;第一模板的第三列第二行的图像块对应的序号分别与第一模板首列中的各图像块对应的序号的比较结果为:,xu32_11,xu32_12,xu32_13;第一模板的第三列第三行的图像块对应的序号分别与第一模板首列中的各图像块对应的序号的比较结果为:xu33_11,xu33_12,xu33_13。

需要说明的是,在小于或等于时,比较结果为-1;在大于时,比较结果为0。例如:当第一模板的第二列第一行的图像块对应的序号小于或等于第一模板首列中的第一行图像块对应的序号时,xu21_11的值为-1;当第一模板的第二列第一行的图像块对应的序号大于第一模板首列中第一行的图像块对应的序号时,xu21_11的值均为0。

第一模板的第二列的各图像块对应的序号为:old21,old22,old23;第一模板的第三列的各图像块对应的序号为:old31,old32,old33;

第一次数包括:

-(xu21_11+xu21_12+xu21_13);-(xu22_11+xu22_12+xu22_13);-(xu23_11+xu23_12+xu23_13);-(xu31_11+xu31_12+xu31_13);-(xu32_11+xu32_12+xu32_13);-(xu33_11+xu33_12+xu33_13)。

初步序号包括:

第二模板的第一列第一行图像块对应的序号new11’=old21+xu21_11+xu21_12+xu21_13;

第二模板的第一列第二行图像块对应的序号new12’=old22+xu22_11+xu22_12+xu22_13;

第二模板的第一列第三行图像块对应的序号new13’=old23+xu23_11+xu23_12+xu23_13;

第二模板的第二列第一行图像块对应的序号new21’=old31+xu31_11+xu31_12+xu31_13;

第二模板的第二列第二行图像块对应的序号new22’=old32+xu32_11+xu32_12+xu32_13;

第二模板的第二列第三行图像块对应的序号new23’=old33+xu33_11+xu33_12+xu33_13。

步骤s206具体包括:

第二模板的第三列第一行的图像块对应的序号分别与第一模板第二列中的各图像块对应的序号的比较结果为:data41_21、data41_22、data41_23;第二模板的第三列第一行的图像块对应的序号分别与第一模板第三列中的各图像块对应的序号的比较结果为:data41_31、data41_32、data41_33;第二模板的第三列第一行的图像块对应的序号分别与第一模板第三列中的第二行和第三行图像块对应的序号的比较结果为:data41_42,data41_43;

第二模板的第三列第二行的图像块对应的序号分别与第一模板第二列中的各图像块对应的序号的比较结果为:data42_21、data42_22、data42_23;第二模板的第三列第二行的图像块对应的序号分别与第一模板第三列中的各图像块对应的序号的比较结果为:data42_31、data42_32、data42_33;第二模板的第三列第二行的图像块对应的序号分别与第一模板第三列中的第一行和第三行图像块对应的序号的比较结果为:data42_41,data42_43;

第二模板的第三列第三行的图像块对应的序号分别与第一模板第二列中的各图像块对应的序号的比较结果为:data43_21、data43_22、data43_23;第二模板的第三列第三行的图像块对应的序号分别与第一模板第三列中的各图像块对应的序号的比较结果为:data43_31、data43_32、data43_33;第二模板的第三列第三行的图像块对应的序号分别与第一模板第三列中的第一行和第二行图像块对应的序号的比较结果为:data43_41,data43_42。

需要说明的是,在小于或等于时,比较结果为-1;在大于时,比较结果为0。例如:当第二模板的第三列第一行的图像块对应的序号大于或等于第一模板第二列中的第一行图像块对应的序号时,data41_21的值为1;当第二模板的第三列第一行的图像块对应的序号小于第一模板第二列中的第一行图像块对应的序号时,data41_21的值为0。

第二次数包括:-(data41_21+data42_21+data43_21);-(data41_22+data42_22+data43_22);-(data41_23+data42_23+data43_23);-(data41_31+data42_31+data43_31);-(data41_32+data42_32+data43_32);-(data41_33+data42_33+data43_33)。

最终序号包括:

第二模板的第一列第一行图像块对应的序号new11=new11’+data41_21+data42_21+data43_21;

第二模板的第一列第二行图像块对应的序号new12=new12’+data41_22+data42_22+data43_22;

第二模板的第一列第三行图像块对应的序号new13=new13’+data41_23+data42_23+data43_23;

第二模板的第二列第一行图像块对应的序号new21=new21’+data41_31+data42_31+data43_31;

第二模板的第二列第二行图像块对应的序号new22=new22’+data41_32+data42_32+data43_32;

第二模板的第二列第三行图像块对应的序号new23=new23’+data41_33+data42_33+data43_33。

步骤s208中统计得到的第三次数包括:(data41_42+data41_43);(data42_41+data42_43);(data43_41+data43_42);

新序号包括:

第二模板的第三列第一行图像块对应的序号new31’=8-data41_21-data41_22-data41_23-data41_31-data41_32-data41_33-data41_42-data41_43;

第二模板的第三列第二行图像块对应的序号new32’=8-data42_21-data42_22-data42_23-data42_31-data42_32-data42_33-data42_41-data42_43;

第二模板的第三列第三行图像块对应的序号new33’=8-data43_21-data43_22-data43_23-data43_31-data43_32-data43_33-data43_41-data43_42。

步骤s210具体包括:

第二模板中第三列第一行的图像块与第二模板中第三列第二行的图像块的比较结果为eq41_42;第二模板中第三列第一行的图像块与第二模板中第三列第三行的图像块的比较结果为eq41_43;第二模板中第三列第二行的图像块与第二模板中第三列第三行的图像块的比较结果为eq42_43;

需要说明的是,在比较为相等时,比较结果为1;则比较为不相等时,比较结果为0。例如:第二模板中第三列第一行的图像块与第二模板中第三列第二行的图像块相等时,eq41_42的值为1;第二模板中第三列第一行的图像块与第二模板中第三列第二行的图像块不相等时,eq41_42的值为0。

最终得到的新序号包括:

第二模板的第三列第一行图像块对应的序号new31=new31’;

第二模板的第三列第二行图像块对应的序号new32=new32’+eq41_42;

第二模板的第三列第三行图像块对应的序号new33=new33’+eq41_43+eq42_43。

步骤s212具体包括:

获取上述序号new11、new12、new13、new21、new22、new23、new31、new32、new33中的中间值作为中间值序号,并输出与该中间值序号对应的图像块。

应该理解的是,虽然图1和图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1和图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图3所示,提供了一种图像滤波装置,应用于fpga设备中,包括:

数组寄存器,用于存储滤波模板中的数据值;

序号寄存器,用于存储与滤波模板中的数据值对应的序号;

第一比较电路,用于比较从序号寄存器获取到的第一图像旧序号和第二图像旧序号,并将得到的第一比较结果传输到统计比较结果电路;

第二比较电路,用于比较图像新区域和图像剩余区域之间各图像块的大小,并将得到的第二比较结果传输到统计比较结果电路;还用于比较图像新区域中各图像块的大小,并将得到的第三比较结果传输到统计比较结果电路;

统计比较结果电路,用于基于从序号寄存器中获取到的第二图像旧序号以及第一比较结果得到初步序号;还用于统计分析第二比较结果、并结合初步序号,得到最终序号;还用于统计分析第二比较结果和第三比较结果得到新序号;还用于向序号寄存器中输出最终序号和新序号;还用于输出中间值序号对应的图像块;

进一步的,还包括缓存电路,用于缓冲输入的图像块;数组寄存器还用于从缓冲电路中读取图像块。

其中,缓存电路可为ram。

具体的,在图像块输入时,缓存电路每次缓存三行图像块;在滑动时,数组寄存器从缓存电路中读取三行同一列的图像块,以用于更新滤波模板的数据值。

以滤波模板为3*3大小的数组,且滤波模板按列滑动为例:数组寄存器在本次滑动时,去掉第一模板的首列,从缓存电路中读取三行同一列的图像块;在本次滑动后,第一模板的第二列和第三列作为第二模板的第一列和第二列,将从缓存电路读取到的图像块作为第二模板的第三列。

关于图像滤波装置的具体限定可以参见上文中对于图像滤波方法的限定,在此不再赘述。上述图像滤波装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1