一种图像的中值滤波处理方法及装置与流程

文档序号:22680358发布日期:2020-10-28 12:40阅读:645来源:国知局
一种图像的中值滤波处理方法及装置与流程

本发明涉及图像处理领域,具体而言,涉及一种图像的中值滤波处理方法及装置。



背景技术:

数字图像在采集和传输时经常会受到电子电路、电磁等影响,采集到的图像往往会携带大量的干扰噪声,这会严重影响后期的图像处理的准确性,因此有必要采用各种滤波器来降低图像中的干扰噪声,其中中值滤波能很好地消除这些随机突发噪声,也因此得到了广泛的应用。

中值滤波是一种非线性滤波方法,它的基本原理是将某个点的像素值设置为其邻域像素值集合的中间值,这个中间值为其邻域像素值集合的中位数。传统的滤波算法是使用一个二维子窗依次对窗内像素进行排序,排序后的中间位置的数即为中值。传统方法在每个子窗计算都是独立的,考虑到相邻子窗之间有很多共同元素,所以传统中值滤波还有一定的改进空间。

中值滤波的计算过程主要是排序,算法的时间复杂度与子窗长度呈o(n3)关系,传统的方法很难适用于大尺寸的中值滤波场景。

相关技术中提出一种5x5的二维中值滤波快速算法,基于三方向排序,极大缩短了算法的时间复杂度,该方式仅适用于5x5的中值滤波,以对角线中值的平均值作为最终中值会引入一定误差,而且三个数的平均值计算涉及到整数除法,计算效率较低;还提出了一种3x3的二维中值滤波算法和电路,通过对行、列、对角线依次进行排序,获得中值,该方式仅适用于3x3的中值滤波。

针对相关技术中整个子窗内数据集进行排序,输出排序后中间位置的值,使得中值滤波的时间复杂度较大,且中值滤波仅适用于固定尺寸的滤波场景的问题,尚未提出解决方案。



技术实现要素:

本发明实施例提供了一种图像的中值滤波处理方法及装置,以至少解决相关技术中整个子窗内数据集进行排序,输出排序后中间位置的值,使得中值滤波的时间复杂度较大,且中值滤波仅适用于固定尺寸的滤波场景的问题。

根据本发明的一个实施例,提供了一种图像的中值滤波处理方法,包括:

读取滤波模板中对应目标图像的像素的灰度值,并将所述滤波模板中读取到的灰度值组成数据集合,其中,所述滤波模板与所述目标图像中的一个像素位置重合;

判断所述数据集合的大小是否大于9;

在判断结果为是的情况下,对所述数据集合中的灰度值进行分段剔除,得到大小小于或等于9的目标集合;

通过所述滤波模板遍历所述目标图像,基于所述目标集合对所述目标图像进行中值滤波。

可选地,对所述数据集合中的灰度值进行分段剔除,得到大小小于或等于9的目标集合包括:

对所述数据集合进行分段处理,得到所述数据集合的最大值子集合、中间值子集合以及最小值子集合;

剔除所述最大值子集合中的部分较大值、所述最小值子集合中的部分较小值,得到大小小于或等于9的目标集合。

可选地,剔除所述最大值子集合中的部分较大值、所述最小值子集合中的部分较小值,得到大小小于或等于9的目标集合包括:

重复对所述数据集合执行以下操作,直到直至所述最大值子集合与所述最小值子集合均剔除至少m个值,得到所述目标集合:

对所述数据集合进行对齐处理,得到3*n的矩阵,其中,n为奇数,

对所述3*n的矩阵的每行按照由小到大或由大到小进行排序;

将排序后的所述3*n的矩阵分割为所述最大值子集合、所述中间值子集合以及所述最小值子集合,其中,所述3*n的矩阵的每一列为一个子集合;

剔除所述最大值子集合中的m个值与所述最小值子集合中的m个值;

将剔除后的所述最大值子集合、所述中间值子集合与剔除后的所述最小值子集合组合成,得到剔除后的所述数据集合。

可选地,剔除所述最大值子集合中的m个值与所述最小值子集合中的m个值包括:

若所述最大值子集合、所述最小值子集合的大小等于9,将所述最大值子集合进行对齐处理,得到列数为3的最大值矩阵,并将所述最小值子集合进行对齐处理,得到列数为3的最小值矩阵;

对所述最大值矩阵、所述最小值矩阵的每行按照由大到小或由小到大进行排序;

剔除所述最大值矩阵中第一列、第二列中的m个值,并剔除所述最小值矩阵中第三列、第二列中的m个值;或者,剔除所述最大值矩阵中第三列、第二列中的m个值,并剔除所述最小值矩阵中第一列、第二列中的m个值。

可选地,剔除所述最大值子集合中的m个值与所述最小值子集合中的m个值包括:

如果所述数据集合不存在父子集,则剔除所述最大值子集合中的最大的m个值与所述最小值子集合中的最小的m个值;

如果所述数据集合存在父子集且所述父子集是所述最大值子集合,则剔除所述最大值子集合中的最大的m个值;

如果所述数据集合存在父子集且所述父子集是所述最小值子集合,则剔除所述最小值子集合中的最小的m个值。

可选地,对所述数据集合进行对齐处理,得到3*n的矩阵包括:

若所述数据集合的大小为3的倍数,直接对所述数据集合进行对齐处理,得到3*n的矩阵;

若所述数据集合的大小不为3的倍数,通过成对添加0与所述数据集合中的最大值的方式将所述数据集合补充为3的倍数,对补充之后的所述数据集合进行对齐处理,得到3*n的矩阵。

可选地,基于所述目标集合对所述目标图像进行中值滤波包括:

确定所述目标集合的中值;

将所述中值替换所述滤波模板中心位置的像素对应的灰度值。

可选地,确定所述目标集合的中值包括:

将所述目标集合转换为3*3的数据矩阵;

对所述数据矩阵的每行进行降序或升序排列,得到目标矩阵;

确定所述目标矩阵中第一列的最大值、第二列的中间值以及第三列的最小值;

将所述第一列的最大值、所述第二列的中间值以及所述第三列的最小值中的中位数确定所述目标集合的中值。

根据本发明的另一个实施例,还提供了一种图像的中值滤波处理装置,包括:

组成模块,用于读取滤波模板中对应目标图像的像素的灰度值,并将所述滤波模板中读取到的灰度值组成数据集合,其中,所述滤波模板与所述目标图像中的一个像素位置重合;

判断模块,用于判断所述数据集合的大小是否大于9;

剔除模块,用于在判断结果为是的情况下,对所述数据集合中的灰度值进行分段剔除,得到大小小于或等于9的目标集合;

中值滤波模块,用于通过所述滤波模板遍历所述目标图像,基于所述目标集合对所述目标图像进行中值滤波。

可选地,所述剔除模块包括:

分段处理子模块,用于对所述数据集合进行分段处理,得到所述数据集合的最大值子集合、中间值子集合以及最小值子集合;

剔除子模块,用于剔除所述最大值子集合中的部分较大值、所述最小值子集合中的部分较小值,得到大小小于或等于9的目标集合。

可选地,所述剔除子模块包括:

重复单元,用于重复对所述数据集合执行以下操作,直至所述最大值子集合与所述最小值子集合均剔除至少m个值,得到所述目标集合:

对齐子单元,用于对所述数据集合进行对齐处理,得到3*n的矩阵,其中,n为奇数,

排序子单元,用于对所述3*n的矩阵的每行按照由小到大或由大到小进行排序;

分割子单元,用于将排序后的所述3*n的矩阵分割为所述最大值子集合、所述中间值子集合以及所述最小值子集合,其中,所述3*n的矩阵的每一列为一个子集合;

剔除子单元,用于剔除所述最大值子集合中的m个值与所述最小值子集合中的m个值;

组合子单元,用于将剔除后的所述最大值子集合、所述中间值子集合与剔除后的所述最小值子集合组合成,得到剔除后的所述数据集合。

可选地,所述剔除子单元,还用于

若所述最大值子集合、所述最小值子集合的大小等于9,将所述最大值子集合进行对齐处理,得到列数为3的最大值矩阵,并将所述最小值子集合进行对齐处理,得到列数为3的最小值矩阵;

对所述最大值矩阵、所述最小值矩阵的每行按照由大到小或由小到大进行排序;

剔除所述最大值矩阵中第一列、第二列中的m个值,并剔除所述最小值矩阵中第三列、第二列中的m个值;或者,剔除所述最大值矩阵中第三列、第二列中的m个值,并剔除所述最小值矩阵中第一列、第二列中的m个值。

可选地,所述剔除子单元,还用于

如果所述数据集合不存在父子集,则剔除所述最大值子集合中的最大的m个值与所述最小值子集合中的最小的m个值;

如果所述数据集合存在父子集且所述父子集是所述最大值子集合,则剔除所述最大值子集合中的最大的m个值;

如果所述数据集合存在父子集且所述父子集是所述最小值子集合,则剔除所述最小值子集合中的最小的m个值。

可选地,所述对齐子单元,还用于

若所述数据集合的大小为3的倍数,直接对所述数据集合进行对齐处理,得到3*n的矩阵;

若所述数据集合的大小不为3的倍数,通过成对添加0与所述数据集合中的最大值的方式将所述数据集合补充为3的倍数,对补充之后的所述数据集合进行对齐处理,得到3*n的矩阵。

可选地,所述中值滤波模块包括:

确定子模块,用于确定所述目标集合的中值;

替换子模块,用于将所述中值替换所述滤波模板中心位置的像素对应的灰度值。

可选地,所述确定子模块包括:

转换单元,用于将所述目标集合转换为3*3的数据矩阵;

排序单元,用于对所述数据矩阵的每行进行降序或升序排列,得到目标矩阵;

第一确定单元,用于确定所述目标矩阵中第一列的最大值、第二列的中间值以及第三列的最小值;

第二确定单元,用于将所述第一列的最大值、所述第二列的中间值以及所述第三列的最小值中的中位数确定所述目标集合的中值。

根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

通过本发明,读取滤波模板中对应目标图像的像素的灰度值,并将所述滤波模板中读取到的灰度值组成数据集合,其中,所述滤波模板与所述目标图像中的一个像素位置重合;判断所述数据集合的大小是否大于9;在判断结果为是的情况下,对所述数据集合中的灰度值进行分段剔除,得到大小小于或等于9的目标集合;通过所述滤波模板遍历所述目标图像,基于所述目标集合对所述目标图像进行中值滤波,可以解决相关技术中整个子窗内数据集进行排序,输出排序后中间位置的值,使得中值滤波的时间复杂度较大,且中值滤波仅适用于固定尺寸的滤波场景的问题,通过分段剔除的方式,使得数据集小于或等于9,减少排序中元素比较的计算量,避免了相邻集合之间的数据依赖,使之能够应用于并行计算,极大降低了中值滤波的时间复杂度,且可以适用于不同尺寸的滤波场景。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的图像的中值滤波处理方法的移动终端的硬件结构框图;

图2是根据本发明实施例的图像的中值滤波处理方法的流程图;

图3是根据本发明实施例的可并行的快速中值滤波方法的流程图;

图4是根据本发明实施例的剔除操作的流程图一;

图5是根据本发明实施例的递归剔除的示意图;

图6是根据本发明实施例的中值计算的流程图;

图7是根据本发明实施例的剔除操作的流程图二;

图8是根据本发明实施例的图像的中值滤波处理装置的框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的图像的中值滤波处理方法的移动终端的硬件结构框图,如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的图像的中值滤波处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种运行于上述移动终端或网络架构的图像的中值滤波处理方法,图2是根据本发明实施例的图像的中值滤波处理方法的流程图,如图2所示,该流程包括如下步骤:

步骤s202,读取滤波模板中对应目标图像的像素的灰度值,并将所述滤波模板中读取到的灰度值组成数据集合,其中,所述滤波模板与所述目标图像中的一个像素位置重合;

步骤s204,判断所述数据集合的大小是否大于9;

步骤s206,在判断结果为是的情况下,对所述数据集合中的灰度值进行分段剔除,得到大小小于或等于9的目标集合;

步骤s208,通过所述滤波模板遍历所述目标图像,基于所述目标集合对所述目标图像进行中值滤波。

进一步地,上述步骤s208具体可以包括:

s2081,确定所述目标集合的中值,进一步的,将所述目标集合转换为3*3的数据矩阵;对所述数据矩阵的每行进行降序或升序排列,得到目标矩阵;确定所述目标矩阵中第一列的最大值、第二列的中间值以及第三列的最小值;将所述第一列的最大值、所述第二列的中间值以及所述第三列的最小值中的中位数确定所述目标集合的中值;

s2082,将所述中值替换所述滤波模板中心位置的像素对应的灰度值。

通过上述步骤s202至s208,读取滤波模板中对应目标图像的像素的灰度值,并将所述滤波模板中读取到的灰度值组成数据集合,其中,所述滤波模板与所述目标图像中的一个像素位置重合;判断所述数据集合的大小是否大于9;在判断结果为是的情况下,对所述数据集合中的灰度值进行分段剔除,得到大小小于或等于9的目标集合;通过所述滤波模板遍历所述目标图像,基于所述目标集合对所述目标图像进行中值滤波,可以解决相关技术中整个子窗内数据集进行排序,输出排序后中间位置的值,使得中值滤波的时间复杂度较大,且中值滤波仅适用于固定尺寸的滤波场景的问题,通过分段剔除的方式,使得数据集小于或等于9,减少排序中元素比较的计算量,避免了相邻集合之间的数据依赖,使之能够应用于并行计算,极大降低了中值滤波的时间复杂度,且可以适用于不同尺寸的滤波场景。

进一步的,上述步骤s206具体可以包括:

对所述数据集合进行分段处理,得到所述数据集合的最大值子集合、中间值子集合以及最小值子集合;

剔除所述最大值子集合中的部分较大值、所述最小值子集合中的部分较小值,得到大小小于或等于9的目标集合。

具体的,可以通过以下方式剔除,重复对所述数据集合执行以下操作,直至所述最大值子集合与所述最小值子集合均剔除至少m个值,得到所述目标集合:

对所述数据集合进行对齐处理,得到3*n的矩阵,其中,n为奇数;对所述3*n的矩阵的每行按照由小到大或由大到小进行排序;进一步的,若所述数据集合的大小为3的倍数,直接对所述数据集合进行对齐处理,得到3*n的矩阵;若所述数据集合的大小不为3的倍数,通过成对添加0与所述数据集合中的最大值的方式将所述数据集合补充为3的倍数,对补充之后的所述数据集合进行对齐处理,得到3*n的矩阵;

将排序后的所述3*n的矩阵分割为所述最大值子集合、所述中间值子集合以及所述最小值子集合,其中,所述3*n的矩阵的每一列为一个子集合;

剔除所述最大值子集合中的m个值与所述最小值子集合中的m个值,进一步的,若所述最大值子集合、所述最小值子集合的不大于9,将所述最大值子集合进行对齐处理,得到列数为3的最大值矩阵,并将所述最小值子集合进行对齐处理,得到列数为3的最小值矩阵;对所述最大值矩阵、所述最小值矩阵的每行按照由大到小或由小到大进行排序;剔除所述最大值矩阵中第一列、第二列中的m个值,并剔除所述最小值矩阵中第三列、第二列中的m个值;或者,剔除所述最大值矩阵中第三列、第二列中的m个值,并剔除所述最小值矩阵中第一列、第二列中的m个值;

将剔除后的所述最大值子集合、所述中间值子集合与剔除后的所述最小值子集合组合成,得到剔除后的所述数据集合,其中,

在一可选的实施例中,剔除所述最大值子集合中的m个值与所述最小值子集合中的m个值具体可以包括:

如果所述数据集合不存在父子集,则剔除所述最大值子集合中的最大的m个值与所述最小值子集合中的最小的m个值,其中,所述数据集合第一次剔除时不存在父子集;

如果所述数据集合存在父子集且所述父子集是所述最大值子集合,则剔除所述最大值子集合中的最大的m个值;

如果所述数据集合存在父子集且所述父子集是所述最小值子集合,则剔除所述最小值子集合中的最小的m个值。

本发明实施例,基于分段剔除,主要分为中值计算和剔除操作,图3是根据本发明实施例的可并行的快速中值滤波方法的流程图,如图3所示,包括:

步骤s301,获取数据集合,其数据集合由滤波模板中对应目标图像的像素的灰度值组成的;

步骤s302,判断数据集合的大小是否大于9,在判断结果为是的情况下,执行步骤s303,否则执行步骤s304;

步骤s303,剔除操作,对集合进行分段排序,一步一步剔除集合中的较大值和较小值。当集合大小不大于9时,则直接执行n9剔除操作。图4是根据本发明实施例的剔除操作的流程图一,如图4所示,包括:

步骤s401,判断数据集合的大小是否大于9,在判断结果为是的情况下,执行步骤s402,否则执行步骤s410;

步骤s402,将数据集合按照大小对齐到3*n,其中,n为奇数;

步骤s403,将数据集合分段为大小为3的子集合{x0,x1,x2,…,xm};

步骤s404,对每个子集合进行排序,将排序后的子集合中的最大值、中间值、最小值分别载入xmax、xmid、xmin;

步骤s405,判断数据集合是否存在父子集,在判断结果为是的情况下,执行步骤s406,否则执行步骤s407;

步骤s406,剔除xmax中最大的ceil(n/2)个项,并剔除xmin中最小的ceil(n/2)个项,将剩余的组成新的集合;

步骤s407,判断父子集是否为最大值子集,在判断结果为是的情况下,执行步骤s408,否则执行步骤s409;

步骤s408,剔除xmax中最大的ceil(n/2)个项,将剩余的组成新的集合,之后执行步骤s411;

步骤s409,剔除xmin中最小的ceil(n/2)个项,将剩余的组成新的集合,之后执行步骤s411;

步骤s410,进行n9剔除操作,集合通过剔除操作后最终都会进入n9剔除操作,对数据集合的每行进行降序或升序排序,得到新的集合y。以降序为例,如果剔除方向为max,也就是指剔除较大的项,此时剔除第一和第二列中的最大值和中间值。如果剔除方向为min,也就是剔除较小的项,此时剔除第三和第二列中的最小值和中间值。

步骤s411,输出剔除后的数据集合。

图5是根据本发明实施例的递归剔除的示意图,如图5所示,剔除的递归操作是将集合不断分解和执行剔除操作。当集合大小大于9时,该流程是一个递归操作流程。首先将集合进行对齐处理,分割成大小为3的小集合,对每个小集合进行排序,然后将排序结果中的最大值、中间值和最小值分别组成三个集合,接下来递归调用剔除操作,以剔除最大值集合中的较大值和最小值集合中的较小值,最后将剔除后的三个集合组合成新的集合。

步骤s304,中值计算,只计算集合大小不大于9的数据集合,因为小规模集合的计算过程简单且复杂度很低。集合大小不大于3时,可直接比较得出中值,无需特殊算法。集合大小大于3时,为了简化过程,可将长度对齐到9,然后执行n9中值计算,图6是根据本发明实施例的中值计算的流程图,如图6所示,包括:

步骤s601,判断数据集合的大小是否大于3,在判断结果为是的情况下,执行步骤s602,否则执行s604;

步骤s602,将数据集合的大小对齐到9;

步骤s603,进行n9中值计算,用于数据集合大小为9的快速中值算法,对集合进行局部排序,缩小中值的求解范围。长度为9的集合可以看成3x3的矩阵,首先对集合的每行进行降序或升序排序,得到新的集合y,以降序为例,然后分别求解第一列的最大值a,第二列的中间值b和第三列的最小值c,最后计算a、b、c的中位数即为该集合的中值。

步骤s604,直接计算数据集合的中值;

步骤s605,输出数据集合的中值。

本发明实施例的算法的时间复杂度低,通过引入分段剔除的思路,递归剔除集合中的较大项和较小项,逐步缩小中值的求解范围,直至将集合大小缩短到9以内。因为小集合中值滤波的计算复杂度远低于大集合,按照这种思路可以将计算复杂度降低一个数量级。可适用于并行计算,进一步提高算法的吞吐量。本发明在每个集合的计算中不存在任何数据依赖关系,因此可以通过simd处理器、fpga、或者定制电路等方式实现更高效的并行计算。

图7是根据本发明实施例的剔除操作的流程图二,如图7所示,包括:

步骤s701,输入数据集;

步骤s702,删除操作;

步骤s703,删除后的数据集;

步骤s704,判断数据集是否存在父子集,在判断结果为是的情况下,执行步骤s705,否则执行步骤s706;

步骤s705,判断剔除数量是否大于ceil(n/2),在判断结果为否的情况下,执行步骤s707,否则执行步骤s708;

步骤s706,判断数据集合的大小是否不大于9,,在判断结果为否的情况下,执行步骤s707,否则执行步骤s708;

步骤s707,更新数据集;

步骤s708,输出数据集。

原始数据的最大(小)值子集,或者最大(小)值子集的递归子集,此时存在父子集。当不存在父子集时,剔除目标为集合大小不大于9;当存在父子集时,剔除目标为剔除数量达到如果未达到剔除目标,则将剩余元素组成新的集合,重复剔除操作。

实施例2

根据本发明的另一个实施例,还提供了一种图像的中值滤波处理装置,图8是根据本发明实施例的图像的中值滤波处理装置的框图,如图8所示,包括:

组成模块82,用于读取滤波模板中对应目标图像的像素的灰度值,并将所述滤波模板中读取到的灰度值组成数据集合,其中,所述滤波模板与所述目标图像中的一个像素位置重合;

判断模块84,用于判断所述数据集合的大小是否大于9;

剔除模块86,用于在判断结果为是的情况下,对所述数据集合中的灰度值进行分段剔除,得到大小小于或等于9的目标集合;

中值滤波模块88,用于通过所述滤波模板遍历所述目标图像,基于所述目标集合对所述目标图像进行中值滤波。

可选地,所述剔除模块86包括:

分段处理子模块,用于对所述数据集合进行分段处理,得到所述数据集合的最大值子集合、中间值子集合以及最小值子集合;

剔除子模块,用于剔除所述最大值子集合中的部分较大值、所述最小值子集合中的部分较小值,得到大小小于或等于9的目标集合。

可选地,所述剔除子模块包括:

重复单元,用于重复对所述数据集合执行以下操作,直至所述最大值子集合与所述最小值子集合均剔除至少m个值,得到所述目标集合:

对齐子单元,用于对所述数据集合进行对齐处理,得到3*n的矩阵,其中,n为奇数,

排序子单元,用于对所述3*n的矩阵的每行按照由小到大或由大到小进行排序;

分割子单元,用于将排序后的所述3*n的矩阵分割为所述最大值子集合、所述中间值子集合以及所述最小值子集合,其中,所述3*n的矩阵的每一列为一个子集合;

剔除子单元,用于剔除所述最大值子集合中的m个值与所述最小值子集合中的m个值;

组合子单元,用于将剔除后的所述最大值子集合、所述中间值子集合与剔除后的所述最小值子集合组合成,得到剔除后的所述数据集合。

可选地,所述剔除子单元,还用于

若所述最大值子集合、所述最小值子集合的大小等于9,将所述最大值子集合进行对齐处理,得到列数为3的最大值矩阵,并将所述最小值子集合进行对齐处理,得到列数为3的最小值矩阵;

对所述最大值矩阵、所述最小值矩阵的每行按照由大到小或由小到大进行排序;

剔除所述最大值矩阵中第一列、第二列中的m个值,并剔除所述最小值矩阵中第三列、第二列中的m个值;或者,剔除所述最大值矩阵中第三列、第二列中的m个值,并剔除所述最小值矩阵中第一列、第二列中的m个值。

可选地,所述剔除子单元,还用于

如果所述数据集合不存在父子集,则剔除所述最大值子集合中的最大的m个值与所述最小值子集合中的最小的m个值;

如果所述数据集合存在父子集且所述父子集是所述最大值子集合,则剔除所述最大值子集合中的最大的m个值;

如果所述数据集合存在父子集且所述父子集是所述最小值子集合,则剔除所述最小值子集合中的最小的m个值。

可选地,所述对齐子单元,还用于

若所述数据集合的大小为3的倍数,直接对所述数据集合进行对齐处理,得到3*n的矩阵;

若所述数据集合的大小不为3的倍数,通过添加0余所述数据集合中的最大值的方式将所述数据集合补充为3的倍数,对补充之后的所述数据集合进行对齐处理,得到3*n的矩阵。

可选地,所述中值滤波模块88包括:

确定子模块,用于确定所述目标集合的中值;

替换子模块,用于将所述中值替换所述滤波模板中心位置的像素对应的灰度值。

可选地,所述确定子模块包括:

转换单元,用于将所述目标集合转换为3*3的数据矩阵;

排序单元,用于对所述数据矩阵的每行进行降序或升序排列,得到目标矩阵;

第一确定单元,用于确定所述目标矩阵中第一列的最大值、第二列的中间值以及第三列的最小值;

第二确定单元,用于将所述第一列的最大值、所述第二列的中间值以及所述第三列的最小值中的中位数确定所述目标集合的中值。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

实施例3

本发明的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,读取滤波模板中对应目标图像的像素的灰度值,并将所述滤波模板中读取到的灰度值组成数据集合,其中,所述滤波模板与所述目标图像中的一个像素位置重合;

s2,判断所述数据集合的大小是否大于9;

s3,在判断结果为是的情况下,对所述数据集合中的灰度值进行分段剔除,得到大小小于或等于9的目标集合;

s4,通过所述滤波模板遍历所述目标图像,基于所述目标集合对所述目标图像进行中值滤波。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

实施例4

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,读取滤波模板中对应目标图像的像素的灰度值,并将所述滤波模板中读取到的灰度值组成数据集合,其中,所述滤波模板与所述目标图像中的一个像素位置重合;

s2,判断所述数据集合的大小是否大于9;

s3,在判断结果为是的情况下,对所述数据集合中的灰度值进行分段剔除,得到大小小于或等于9的目标集合;

s4,通过所述滤波模板遍历所述目标图像,基于所述目标集合对所述目标图像进行中值滤波。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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