首页 / 专利库 / 化学元素和化合物 / 电子 / 中值滤波的处理方法和装置、电子设备、计算机存储介质

中值滤波的处理方法和装置、电子设备、计算机存储介质

阅读:397发布:2020-10-28

专利汇可以提供中值滤波的处理方法和装置、电子设备、计算机存储介质专利检索,专利查询,专利分析的服务。并且本 发明 实施例 公开了一种中值滤波的处理方法和装置、 电子 设备、计算机存储介质,其中,方法包括:基于待处理图像建立一个缓冲区;基于滤波窗口获取待处理图像中对应每个 像素 的邻域区域,滤波窗口的大小为m*m,m为大于1的奇数;基于邻域区域中的像素值在缓冲区内累加,获得对应每个缓存地址中的累加值;通过获取累加值大于m*m/2的缓存地址对应的像素值;以获取的像素值中的最小像素值作为邻域区域对应的像素的中值。本发明实施例,通过在缓冲区内对邻域区域的像素对应地址进行累加,实现了对邻域区域中的像素排序,可以快速查找像素;降低了获取中值的复杂度,提高了中值滤波的处理效率。,下面是中值滤波的处理方法和装置、电子设备、计算机存储介质专利的具体信息内容。

1.一种中值滤波的处理方法,其特征在于,包括:
基于待处理图像建立一个缓冲区;所述缓冲区包括多个缓存地址,所有所述缓存地址的初始值均为零;
基于滤波窗口获取所述待处理图像中对应每个像素的邻域区域,所述滤波窗口的大小为m*m,m为大于1的奇数;
获取所述邻域区域中的所有像素值,对所述缓冲区内对应所述像素值的缓存地址中的初始值进行累加,获得对应每个缓存地址的第一累加值;
基于所述第一累加值执行二次累加,获得对应每个缓存地址的累加值;
获取累加值大于m*m/2的缓存地址对应的像素值;以获取的像素值中的最小像素值作为所述邻域区域对应的像素的中值。
2.根据权利要求1所述的方法,其特征在于,获取所述邻域区域中的所有像素值,对所述缓冲区内对应所述像素值的缓存地址中的初始值进行累加,包括:
获取所述邻域区域中的所有像素值,基于所述像素值在缓存地址中查找到对应的m*m个缓存地址,将所述查找得到的缓存地址中的初始值加1。
3.根据权利要求1或2所述的方法,其特征在于,基于所述第一累加值执行二次累加,获得对应每个缓存地址的累加值,包括:
依次选取所述缓存地址作为当前缓存地址;
将所述当前缓存地址中的第一累加值与前一个缓存地址的累加值相加得到所述当前缓存地址的累加值,得到所有所述缓存地址中的累加值;其中,当所述当前缓存地址为首个缓存地址时,所述前一个缓存地址的累加值为0。
4.根据权利要求3所述的方法,其特征在于,所述基于待处理图像建立一个缓冲区,包括:
获取待处理图像中所有像素对应的像素值,获取所述所有像素值中的最大像素值;建立缓冲区,所述缓冲区包括缓存地址的数量为最大像素值加1。
5.根据权利要求4所述的方法,其特征在于,所述基于滤波窗口获取所述待处理图像中对应每个像素的邻域区域,包括:
将滤波窗口在所述待处理图像上移动,在移动过程中获取每个对应滤波窗口大小的待处理图像区域作为邻域区域,所述邻域区域对应该待处理图像区域中心点位置的像素。
6.根据权利要求1、2、4-5任一项所述的方法,其特征在于,所述获取累加值大于m*m/2的缓存地址对应的像素值;将所述获取的像素值中的最小像素值作为所述邻域区域对应的像素的中值,包括:
基于获取的对应每个所述缓存地址的累加值,按顺序将所述累加值与m*m/2进行比较,得到数值大于m*m/2的累加值;
基于所述得到的累加值获取对应所述得到的累加值的像素值;将对应累加值的像素值中的最小像素值作为所述邻域区域对应的像素的中值。
7.根据权利要求3所述的方法,其特征在于,所述获取累加值大于m*m/2的缓存地址对应的像素值;将所述获取的像素值中的最小像素值作为所述邻域区域对应的像素的中值,包括:
基于获取的对应每个所述缓存地址的累加值,按顺序将所述累加值与m*m/2进行比较,得到数值大于m*m/2的累加值;
基于所述得到的累加值获取对应所述得到的累加值的像素值;将对应累加值的像素值中的最小像素值作为所述邻域区域对应的像素的中值。
8.根据权利要求6所述的方法,其特征在于,将所述对应累加值的像素值中的最小像素值作为所述邻域区域对应的像素的中值,包括:
将所述对应累加值的像素值按大小排序,基于排序后的所述对应累加值的像素值获得最小像素值;
将所述最小像素值作为所述邻域区域对应的像素的中值。
9.根据权利要求7所述的方法,其特征在于,将所述对应累加值的像素值中的最小像素值作为所述邻域区域对应的像素的中值,包括:
将所述对应累加值的像素值按大小排序,基于排序后的所述对应累加值的像素值获得最小像素值;
将所述最小像素值作为所述邻域区域对应的像素的中值。
10.根据权利要求1、2、4-5任一项所述的方法,其特征在于,还包括:
基于获取的对应所述每个像素的中值,将所述中值按照对应的像素位置进行排列;获得对应所述待处理图像的中值滤波后的滤波图像。
11.根据权利要求3所述的方法,其特征在于,还包括:
基于获取的对应所述每个像素的中值,将所述中值按照对应的像素位置进行排列;获得对应所述待处理图像的中值滤波后的滤波图像。
12.一种中值滤波的处理装置,其特征在于,包括:
缓冲建立单元,用于基于待处理图像建立一个缓冲区;所述缓冲区包括多个缓存地址,所有所述缓存地址的初始值均为零;
邻域获取单元,用于基于滤波窗口获取所述待处理图像中对应每个像素的邻域区域,所述滤波窗口的大小为m*m,m为大于1的奇数;
缓存累加单元包括:第一累加模,用于获取所述邻域区域中的所有像素值,对所述缓冲区内对应所述像素值的缓存地址中的初始值进行累加,获得对应每个缓存地址的第一累加值;第二累加模块,用于基于所述第一累加值执行二次累加,获得对应每个缓存地址的累加值;
中值获取单元,用于获取累加值大于m*m/2的缓存地址对应的像素值;以获取的像素值中的最小像素值作为所述邻域区域对应的像素的中值。
13.根据权利要求12所述的装置,其特征在于,所述第一累加模块,具体用于获取所述邻域区域中的所有像素值,基于所述像素值在缓存地址中查找到对应的m*m个缓存地址,将所述查找得到的缓存地址中的初始值加1。
14.根据权利要求12或13所述的装置,其特征在于,所述第二累加模块,具体用于依次选取所述缓存地址作为当前缓存地址;
将所述当前缓存地址中的第一累加值与前一个缓存地址的累加值相加得到所述当前缓存地址的累加值,得到所有所述缓存地址中的累加值;其中,当所述当前缓存地址为首个缓存地址时,所述前一个缓存地址的累加值为0。
15.根据权利要求14所述的装置,其特征在于,所述缓冲建立单元,具体用于获取待处理图像中所有像素对应的像素值,获取所述所有像素值中的最大像素值;建立缓冲区,所述缓冲区包括缓存地址的数量为最大像素值加1。
16.根据权利要求15所述的装置,其特征在于,所述邻域获取单元,具体用于将滤波窗口在所述待处理图像上移动,在移动过程中获取每个对应滤波窗口大小的待处理图像区域作为邻域区域,所述邻域区域对应该待处理图像区域中心点位置的像素。
17.根据权利要求12、13、15-16任一项所述的装置,其特征在于,所述中值获取单元,包括:
比较模块,用于基于获取的对应每个所述缓存地址的累加值,按顺序将所述累加值与m*m/2进行比较,得到数值大于m*m/2的累加值;基于所述得到的累加值获取对应所述得到的累加值的像素值;
中值模块,用于将对应累加值的像素值中的最小像素值作为所述邻域区域对应的像素的中值。
18.根据权利要求14所述的装置,其特征在于,所述中值获取单元,包括:
比较模块,用于基于获取的对应每个所述缓存地址的累加值,按顺序将所述累加值与m*m/2进行比较,得到数值大于m*m/2的累加值;基于所述得到的累加值获取对应所述得到的累加值的像素值;
中值模块,用于将对应累加值的像素值中的最小像素值作为所述邻域区域对应的像素的中值。
19.根据权利要求17所述的装置,其特征在于,所述中值模块,具体用于将所述对应累加值的像素值按大小排序,基于排序后的所述对应累加值的像素值获得最小像素值;将所述最小像素值作为所述邻域区域对应的像素的中值。
20.根据权利要求18所述的装置,其特征在于,所述中值模块,具体用于将所述对应累加值的像素值按大小排序,基于排序后的所述对应累加值的像素值获得最小像素值;将所述最小像素值作为所述邻域区域对应的像素的中值。
21.根据权利要求12、13、15-16任一项所述的装置,其特征在于,还包括:
滤波图像单元,用于基于获取的对应所述每个像素的中值,将所述中值按照对应的像素位置进行排列;获得对应所述待处理图像的中值滤波后的滤波图像。
22.根据权利要求14所述的装置,其特征在于,还包括:
滤波图像单元,用于基于获取的对应所述每个像素的中值,将所述中值按照对应的像素位置进行排列;获得对应所述待处理图像的中值滤波后的滤波图像。
23.一种电子设备,其特征在于,包括处理器,所述处理器包括权利要求12至22任意一项所述的中值滤波的处理装置。
24.一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成权利要求1至11任意一项所述中值滤波的处理方法的操作。
25.一种计算机存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时执行权利要求1至11任意一项所述中值滤波的处理方法的操作。

说明书全文

中值滤波的处理方法和装置、电子设备、计算机存储介质

技术领域

[0001] 本发明涉及立体视觉处理技术,尤其是一种中值滤波的处理方法和装置、电子设备、计算机存储介质。

背景技术

[0002] 中值滤波器是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的噪声。这个设计思想就是检查输入信号中的采样并判断它是否代表了信号,使用奇数个采样组成的观察窗实现这项功能。观察窗口中的数值进行排序,位于观察窗中间的中值作为输出。然后,丢弃最早的值,取得新的采样,重复上面的计算过程。中值是一个将概率分布的高半部分与低半部分分开的值。对一个随机变量x而言,x像素值(包括中心像素值)的中值代替它的灰像素值的一种方法。

发明内容

[0003] 本发明实施例提供了一种中值滤波的处理技术。
[0004] 本发明实施例提供的一种中值滤波的处理方法,其特征在于,包括:
[0005] 基于待处理图像建立一个缓冲区;所述缓冲区包括多个缓存地址,所有所述缓存地址的初始值均为零;
[0006] 基于滤波窗口获取所述待处理图像中对应每个像素的邻域区域,所述滤波窗口的大小为m*m,m为大于1的奇数;
[0007] 基于所述邻域区域中的像素值在所述缓冲区内累加,获得对应每个缓存地址中的累加值;
[0008] 获取累加值大于m*m/2的缓存地址对应的像素值;以所述获取的像素值中的最小像素值作为所述邻域区域对应的像素的中值。
[0009] 在基于本发明上述方法的另一个实施例中,所述基于待处理图像建立一个缓冲区,包括:
[0010] 获取待处理图像中所有像素对应的像素值,获取所述所有像素值中的最大像素值;建立缓冲区,所述缓冲区包括缓存地址的数量为最大像素值加1。
[0011] 在基于本发明上述方法的另一个实施例中,所述基于滤波窗口获取所述待处理图像中对应每个像素的邻域区域,包括:
[0012] 将滤波窗口在所述待处理图像上移动,在移动过程中获取每个对应滤波窗口大小的待处理图像区域作为邻域区域,所述邻域区域对应该待处理图像区域中心点位置的像素。
[0013] 在基于本发明上述方法的另一个实施例中,基于所述邻域区域中的像素值在所述缓冲区内累加,获得对应每个缓存地址中的累加值,包括:
[0014] 获取所述邻域区域中的所有像素值,对所述缓冲区内对应所述像素值的缓存地址中的初始值进行累加,获得对应每个缓存地址的第一累加值;
[0015] 基于所述第一累加值执行二次累加,获得对应每个缓存地址的累加值。
[0016] 在基于本发明上述方法的另一个实施例中,获取所述邻域区域中的所有像素值,对所述缓冲区内对应所述像素值的缓存地址中的初始值进行累加,包括:
[0017] 获取所述邻域区域中的所有像素值,基于所述像素值在缓存地址中查找到对应的m*m个缓存地址,将所述查找得到的缓存地址中的初始值加1。
[0018] 在基于本发明上述方法的另一个实施例中,基于所述第一累加值执行二次累加,获得对应每个缓存地址的累加值,包括:
[0019] 依次选取所述缓存地址作为当前缓存地址;
[0020] 将所述当前缓存地址中的第一累加值与前一个缓存地址的累加值相加得到所述当前缓存地址的累加值,得到所有所述缓存地址中的累加值;其中,当所述当前缓存地址为首个缓存地址时,所述前一个缓存地址的累加值为0。
[0021] 在基于本发明上述方法的另一个实施例中,所述获取累加值大于m*m/2的缓存地址对应的像素值;将所述获取的像素值中的最小像素值作为所述邻域区域对应的像素的中值,包括:
[0022] 基于获取的对应每个所述缓存地址的累加值,按顺序将所述累加值与m*m/2进行比较,得到数值大于m*m/2的累加值;
[0023] 基于所述得到的累加值获取对应所述得到的累加值的像素值;将所述对应累加值的像素值中的最小像素值作为所述邻域区域对应的像素的中值。
[0024] 在基于本发明上述方法的另一个实施例中,将所述对应累加值的像素值中的最小像素值作为所述邻域区域对应的像素的中值,包括:
[0025] 将所述对应累加值的像素值按大小排序,基于排序后的所述对应累加值的像素值获得最小像素值;
[0026] 将所述最小像素值作为所述邻域区域对应的像素的中值。
[0027] 在基于本发明上述方法的另一个实施例中,还包括:
[0028] 基于获取的对应所述每个像素的中值,将所述中值按照对应的像素位置进行排列;获得对应所述待处理图像的中值滤波后的滤波图像。
[0029] 根据本发明实施例的一个方面,提供的一种中值滤波的处理装置,包括:
[0030] 缓冲建立单元,用于基于待处理图像建立一个缓冲区;所述缓冲区包括多个缓存地址,所有所述缓存地址的初始值均为零;
[0031] 邻域获取单元,用于基于滤波窗口获取所述待处理图像中对应每个像素的邻域区域,所述滤波窗口的大小为m*m,m为大于1的奇数;
[0032] 缓存累加单元,用于基于所述邻域区域中的像素值在所述缓冲区内累加,获得对应每个缓存地址中的累加值;
[0033] 中值获取单元,用于获取累加值大于m*m/2的缓存地址对应的像素值;以所述获取的像素值中的最小像素值作为所述邻域区域对应的像素的中值。
[0034] 在基于本发明上述装置的另一个实施例中,所述缓冲建立单元,具体用于获取待处理图像中所有像素对应的像素值,获取所述所有像素值中的最大像素值;建立缓冲区,所述缓冲区包括缓存地址的数量为最大像素值加1。
[0035] 在基于本发明上述装置的另一个实施例中,所述邻域获取单元,具体用于将滤波窗口在所述待处理图像上移动,在移动过程中获取每个对应滤波窗口大小的待处理图像区域作为邻域区域,所述邻域区域对应该待处理图像区域中心点位置的像素。
[0036] 在基于本发明上述装置的另一个实施例中,所述缓存累加单元,包括:
[0037] 第一累加模,用于获取所述邻域区域中的所有像素值,对所述缓冲区内对应所述像素值的缓存地址中的初始值进行累加,获得对应每个缓存地址的第一累加值;
[0038] 第二累加模块,用于基于所述第一累加值执行二次累加,获得对应每个缓存地址的累加值。
[0039] 在基于本发明上述装置的另一个实施例中,所述第一累加模块,具体用于获取所述邻域区域中的所有像素值,基于所述像素值在缓存地址中查找到对应的m*m个缓存地址,将所述查找得到的缓存地址中的初始值加1。
[0040] 在基于本发明上述装置的另一个实施例中,所述第二累加模块,具体用于依次选取所述缓存地址作为当前缓存地址;
[0041] 将所述当前缓存地址中的第一累加值与前一个缓存地址的累加值相加得到所述当前缓存地址的累加值,得到所有所述缓存地址中的累加值;其中,当所述当前缓存地址为首个缓存地址时,所述前一个缓存地址的累加值为0。
[0042] 在基于本发明上述装置的另一个实施例中,所述中值获取单元,包括:
[0043] 比较模块,用于基于获取的对应每个所述缓存地址的累加值,按顺序将所述累加值与m*m/2进行比较,得到数值大于m*m/2的累加值;基于所述得到的累加值获取对应所述得到的累加值的像素值;
[0044] 中值模块,用于将所述对应累加值的像素值中的最小像素值作为所述邻域区域对应的像素的中值。
[0045] 在基于本发明上述装置的另一个实施例中,所述中值模块,具体用于将所述对应累加值的像素值按大小排序,基于排序后的所述对应累加值的像素值获得最小像素值;将所述最小像素值作为所述邻域区域对应的像素的中值。
[0046] 在基于本发明上述装置的另一个实施例中,还包括:
[0047] 滤波图像单元,用于基于获取的对应所述每个像素的中值,将所述中值按照对应的像素位置进行排列;获得对应所述待处理图像的中值滤波后的滤波图像。
[0048] 根据本发明实施例的一个方面,提供的一种电子设备,包括处理器,所述处理器包括如上所述的中值滤波的处理装置。
[0049] 根据本发明实施例的一个方面,提供的一种电子设备,包括:存储器,用于存储可执行指令;
[0050] 以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成如上所述中值滤波的处理方法的操作。
[0051] 根据本发明实施例的一个方面,提供的一种计算机存储介质,用于存储计算机可读取的指令,所述指令被执行时执行如上所述中值滤波的处理方法的操作。
[0052] 基于本发明上述实施例提供的中值滤波的处理方法和装置、电子设备、计算机存储介质,基于待处理图像建立一个缓冲区;基于滤波窗口获取待处理图像中对应每个像素的邻域区域,滤波窗口的大小为m*m,m为大于1的奇数;基于邻域区域中的像素值在缓冲区内累加,获得对应每个缓存地址中的累加值;通过在缓冲区内对邻域区域的像素对应地址进行累加,实现了对邻域区域中的像素排序,可以快速查找像素;通过获取累加值大于m*m/2的缓存地址对应的像素值;以获取的像素值中的最小像素值作为邻域区域对应的像素的中值;降低了获取中值的复杂度,提高了中值滤波的处理效率。
[0053] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

[0054] 构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
[0055] 参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
[0056] 图1为本发明中值滤波的处理方法一个实施例的流程图
[0057] 图2为本发明中值滤波的处理装置一个实施例的结构示意图。

具体实施方式

[0058] 现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
[0059] 同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
[0060] 以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
[0061] 对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
[0062] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0063] 本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式计算技术环境,等等。
[0064] 计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0065] 在图像处理中,中值滤波的使用非常的普遍,这是由于对于一定类型的随机噪声,中值滤波提供了优秀的去噪能,并且相比于小尺寸的线性平滑滤波器的模糊程度要低很多。同时,中值滤波对处理脉冲噪声(椒盐噪声)非常有效。
[0066] 中值滤波的核心问题是对像素邻域内的像素进行排序,找出位于中间的值(中值),各种中值滤波算法的效率主要集中在排序方法的选择,不同的排序方法导致的比较量及算法的复杂度不一样,复杂度决定了中值滤波的处理速度的快慢。
[0067] 由此可知,提高中值滤波的处理速度,尤其是处理邻域比较大的窗口的中值滤波速度非常重要。例如:针对一个VGA的灰度图像(640x480),如果采用快速,平均时间复杂对为O(nlog2n),以9x9的邻域窗口计算,所需的比较次数为640x480x81xlog281=157755755次,超过了1.5亿次,即使采用了最快、最常用的STL中的nth_elment算法,其平均时间复杂度为O(n),也达到了24883200次;可知现有技术中的中值滤波处理方法的复杂度很大,处理速度很慢。
[0068] 图1为本发明中值滤波的处理方法一个实施例的流程图。如图1所示,该实施例方法包括:
[0069] 步骤101,基于待处理图像建立一个缓冲区。
[0070] 其中,缓冲区包括多个缓存地址,所有缓存地址的初始值均为零;在具体实施例过程中,通常设置的缓存地址的数量为待处理图像中最大像素值加1个;这样设置的目的是为了将待处理图像中的所有像素都能在缓存区中找到对应的缓存地址,便于后续累加;同时,不设置更多的缓存地址,是为了节省缓存空间;实际应用中,只需将缓存地址的数量设置为大于最大像素值加1个即可。
[0071] 步骤102,基于滤波窗口获取待处理图像中对应每个像素的邻域区域。
[0072] 其中,滤波窗口的大小为m*m,m为大于1的奇数;通过滤波窗口可以获取每个像素的邻域区域,由于涉及中值获取,因此,每个滤波窗口获取的像素个数应为奇数,而1个像素无需计算,因此,m为大于1的奇数。
[0073] 步骤103,基于邻域区域中的像素值在所述缓冲区内累加,获得对应每个缓存地址中的累加值。
[0074] 步骤104,获取累加值大于m*m/2的缓存地址对应的像素值;以所获取的像素值中的最小像素值作为邻域区域对应的像素的中值。
[0075] 基于本发明上述实施例提供的中值滤波的处理方法,基于待处理图像建立一个缓冲区;基于滤波窗口获取待处理图像中对应每个像素的邻域区域,滤波窗口的大小为m*m,m为大于1的奇数;基于邻域区域中的像素值在缓冲区内累加,获得对应每个缓存地址中的累加值;通过在缓冲区内对邻域区域的像素对应地址进行累加,实现了对邻域区域中的像素排序,可以快速查找像素;通过获取累加值大于m*m/2的缓存地址对应的像素值;将获取的像素值中的最小像素值作为邻域区域对应的像素的中值;降低了获取中值的复杂度,提高了中值滤波的处理效率。
[0076] 在本发明中值滤波的处理方法上述实施例的一个具体示例中,操作101包括:
[0077] 获取待处理图像中所有像素对应的像素值,获取所有像素值中的最大像素值;建立缓冲区,缓冲区包括缓存地址的数量为最大像素值加1。
[0078] 本实施例提供的方法的平均复杂度不随邻域的大小变化,只与待处理图像中像素的最大值有关,尤其是处理超过11x11邻域的中值滤波时,本实施例中值滤波的处理方法的效率远大于现有技术中的其他中值滤波处理方法(如:nth_elment算法)。
[0079] 在本发明中值滤波的处理方法上述各实施例的一个具体示例中,操作102包括:
[0080] 将滤波窗口在待处理图像上移动,在移动过程中获取每个对应滤波窗口大小的待处理图像区域作为邻域区域。
[0081] 其中,邻域区域对应该待处理图像区域中心点位置的像素;本实施例通过将滤波窗口在待处理图像中顺序移动,获得多个滤波窗口大小的邻域区域,基于多个邻域区域可获得对应邻域区域数量的中值,基于这些中值即可构成中值滤波后的滤波图像。
[0082] 本发明中值滤波的处理方法的另一个实施例,在上述各实施例的基础上,操作103包括:
[0083] 获取邻域区域中的所有像素值,对缓冲区内对应像素值的缓存地址中的初始值进行累加,获得对应每个缓存地址的第一累加值;
[0084] 基于第一累加值执行二次累加,获得对应每个缓存地址的累加值。
[0085] 本实施例中对应每个缓存地址的累加值是经过两次累加获得的,经过第一次累加确定邻域区域内的所有像素在缓冲区内的位置,经过第二次累加确定邻域区域内的所有像素之间的位置关系,通过累加值即可确定哪个邻域区域的像素为中值。
[0086] 在本发明中值滤波的处理方法上述实施例的一个具体示例中,获取邻域区域中的所有像素值,对缓冲区内对应像素值的缓存地址中的初始值进行累加,包括:
[0087] 获取邻域区域中的所有像素值,基于像素值在缓存地址中查找到对应的m*m个缓存地址,将查找得到的缓存地址中的初始值加1。
[0088] 本实施例中,可以将缓存地址进行编号,编号从0开始,直到编号达到最大像素值的数值;基于像素值的数值将对应数值编号的缓存地址中的初始值加1,此时将得到一组仅在对应邻域区域的像素值编号的缓存地址为1,其余缓存地址为0的缓存区。
[0089] 在本发明中值滤波的处理方法上述实施例的一个具体示例中,基于第一累加值执行二次累加,获得对应每个缓存地址的累加值,包括:
[0090] 依次选取缓存地址作为当前缓存地址;
[0091] 将当前缓存地址中的第一累加值与前一个缓存地址的累加值相加得到当前缓存地址的累加值,得到所有缓存地址中的累加值;其中,当当前缓存地址为首个缓存地址时,前一个缓存地址的累加值为0。
[0092] 本实施例中,通过第二次累加,使对应邻域区域中最小像素值的缓存地址的累加值为1,对应邻域区域中按从小到大排序的第二个像素值的缓存地址的累加值为2,以此类推,对应邻域区域中最大像素值的缓存地址的累加值为m*m;此时由累加值的大小即可确定累加值仅大于m*m/2的缓存地址对应的像素值为所述邻域区域的中值。
[0093] 本发明中值滤波的处理方法的又一个实施例,在上述各实施例的基础上,操作104,包括:
[0094] 基于获取的对应每个缓存地址的累加值,按顺序将累加值与m*m/2进行比较,得到数值大于m*m/2的累加值;
[0095] 基于得到的累加值获取对应得到的累加值的像素值;将对应累加值的像素值中的最小像素值作为邻域区域对应的像素的中值。
[0096] 本实施例中,通过将得到的累加值与m*m/2进行比较,将获得多个数值大于m*m/2的累加值,将其中最小像素值作为邻域区域对应的中值。
[0097] 在本发明中值滤波的处理方法上述实施例的一个具体示例中,将对应累加值的像素值中的最小像素值作为邻域区域对应的像素的中值,包括:
[0098] 将对应累加值的像素值按大小排序,基于排序后的对应累加值的像素值获得最小像素值;
[0099] 将最小像素值作为邻域区域对应的像素的中值。
[0100] 本实施例中,将对应累加值的像素值按从小到大或从大到小进行排序,按从小到大排序时,获取第一个像素值为最小像素值;按从大到小排序时,获取最后一个像素值为最小像素值。
[0101] 本发明中值滤波的处理方法的还一个实施例,在上述各实施例的基础上,还包括:
[0102] 基于获取的对应每个像素的中值,将中值按照对应的像素位置进行排列;获得对应待处理图像的中值滤波后的滤波图像。
[0103] 本实施例中,对待处理图像中所有的邻域区域依次执行本发明上述实施例中值滤波的处理方法,分别获得对应每个邻域区域中的像素的中值,将获得的中值替代该像素,即可获得中值滤波后的滤波图像。
[0104] 本发明在具体实施过程中,可以包括以下步骤:
[0105] 1、创建Gmax个整数累加缓冲区AccBuffer,Gmax是原始图像Src像素的最大值加1(由于缓存地址从0开始,因此是像素的最大值加1),原始图像Src的像素数量为a*b个。
[0106] 2、对原始图像Src上的第p像素(p的取值范围为:1≤p≤a*b),都做如下处理(假设其邻域大小为m*m):
[0107] a)将缓冲区AccBuffer全部清零;
[0108] b)取该像素邻域内的一个值(假设它的值为g);
[0109] c)对AccBuffer中第g个值加1(AccBuffer[g]=AccBuffer[g]+1);
[0110] d)重复步骤a)和步骤b)直到所有的邻域内的像素(MxM个)处理完毕;
[0111] e)设一个累加值sum(第二累加值),对其清零(sum=0);
[0112] f)对第i个AccBuffer进行累加(sum[i]=sum[i-1]+AccBuffer[i]),判断sum是否大于m*m/2,如果大于,则停止,找到中值为i,否则继续i=i+1,直到所有的AccBuffer全部处理完(i=a*b)。
[0113] g)将中值i赋给滤波后的图像Dst上第p个像素
[0114] 3、p=p+1,重复执行步骤2,直到所有的Src图像上的像素处理完(p=a*b)。
[0115] 4、输出中值滤波后的滤波图像Dst。
[0116] 表1为同一PC,同一幅图像,本实施例中值滤波的处理方法和nth_element算法处理速度的结果对比;其中原始图像大小为1280像素*720像素;
[0117]邻域窗口大小 3x3 7x7 11x11 15x15 19x19
nth_element 230ms 1150ms 2550ms 4650ms 7280ms
本发明 410ms 510ms 550ms 670ms 780ms
[0118] 表1中值滤波的处理方法和nth_element算法处理速度的结果对比表[0119] 从比较的结果来看,在小窗口的情况下,不如nth_element快,但当窗口增大以后,nth_element以nlog2n的形式增长,而本实施例中值滤波的处理方法基本上是一条直线,因此,本实施例在滤波窗口越大的情况下,优势越明显,处理速度越快,明显优于现有技术。
[0120] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0121] 图2为本发明中值滤波的处理装置一个实施例的结构示意图。该实施例的装置可用于实现本发明上述各方法实施例。如图2所示,该实施例的装置包括
[0122] 缓冲建立单元21,用于基于待处理图像建立一个缓冲区。
[0123] 其中,缓冲区包括多个缓存地址,所有缓存地址的初始值均为零。
[0124] 邻域获取单元22,用于基于滤波窗口获取待处理图像中对应每个像素的邻域区域。
[0125] 其中,滤波窗口的大小为m*m,m为大于1的奇数。
[0126] 缓存累加单元23,用于基于邻域区域中的像素值在缓冲区内累加,获得对应每个缓存地址中的累加值。
[0127] 中值获取单元24,用于获取累加值大于m*m/2的缓存地址对应的像素值;以获取的像素值中的最小像素值作为邻域区域对应的像素的中值。
[0128] 基于本发明上述实施例提供的中值滤波的处理装置,基于待处理图像建立一个缓冲区;基于滤波窗口获取待处理图像中对应每个像素的邻域区域,滤波窗口的大小为m*m,m为大于1的奇数;基于邻域区域中的像素值在缓冲区内累加,获得对应每个缓存地址中的累加值;通过在缓冲区内对邻域区域的像素对应地址进行累加,实现了对邻域区域中的像素排序,可以快速查找像素;通过获取累加值大于m*m/2的缓存地址对应的像素值;将获取的像素值中的最小像素值作为邻域区域对应的像素的中值;降低了获取中值的复杂度,提高了中值滤波的处理效率。
[0129] 在本发明中值滤波的处理装置上述实施例的一个具体示例中,缓冲建立单元21,具体用于获取待处理图像中所有像素对应的像素值,获取所有像素值中的最大像素值;建立缓冲区,缓冲区包括缓存地址的数量为最大像素值加1。
[0130] 在本发明中值滤波的处理装置上述各实施例的一个具体示例中,邻域获取单元22,具体用于将滤波窗口在待处理图像上移动,在移动过程中获取每个对应滤波窗口大小的待处理图像区域作为邻域区域,邻域区域对应该待处理图像区域中心点位置的像素。
[0131] 本发明中值滤波的处理装置的另一个实施例,在上述各实施例的基础上,缓存累加单元23,包括:
[0132] 第一累加模块,用于获取邻域区域中的所有像素值,对缓冲区内对应像素值的缓存地址中的初始值进行累加,获得对应每个缓存地址的第一累加值;
[0133] 第二累加模块,用于基于第一累加值执行二次累加,获得对应每个缓存地址的累加值。
[0134] 本实施例中对应每个缓存地址的累加值是经过两次累加获得的,经过第一次累加确定邻域区域内的所有像素在缓冲区内的位置,经过第二次累加确定邻域区域内的所有像素之间的位置关系,通过累加值即可确定哪个邻域区域的像素为中值。
[0135] 在本发明中值滤波的处理装置上述各实施例的一个具体示例中,第一累加模块,具体用于获取邻域区域中的所有像素值,基于像素值在缓存地址中查找到对应的m*m个缓存地址,将查找得到的缓存地址中的初始值加1。
[0136] 在本发明中值滤波的处理装置上述各实施例的一个具体示例中,第二累加模块,具体用于依次选取缓存地址作为当前缓存地址;
[0137] 将当前缓存地址中的第一累加值与前一个缓存地址的累加值相加得到当前缓存地址的累加值,得到所有缓存地址中的累加值;其中,当当前缓存地址为首个缓存地址时,前一个缓存地址的累加值为0。
[0138] 本发明中值滤波的处理装置的又一个实施例,在上述各实施例的基础上,中值获取单元24,包括:
[0139] 比较模块,用于基于获取的对应每个缓存地址的累加值,按顺序将累加值与m*m/2进行比较,得到数值大于m*m/2的累加值;基于得到的累加值获取对应得到的累加值的像素值;
[0140] 中值模块,用于将对应累加值的像素值中的最小像素值作为邻域区域对应的像素的中值。
[0141] 本实施例中,通过将得到的累加值与m*m/2进行比较,将获得多个数值大于m*m/2的累加值,将其中最小像素值作为邻域区域对应的中值。
[0142] 在本发明中值滤波的处理装置上述实施例的一个具体示例中,中值模块,具体用于将对应累加值的像素值按大小排序,基于排序后的对应累加值的像素值获得最小像素值;将最小像素值作为邻域区域对应的像素的中值。
[0143] 本发明中值滤波的处理装置的还一个实施例,在上述各实施例的基础上,还包括:
[0144] 滤波图像单元,用于基于获取的对应每个像素的中值,将中值按照对应的像素位置进行排列;获得对应待处理图像的中值滤波后的滤波图像。
[0145] 根据本发明实施例的一个方面,提供的一种电子设备,包括处理器,处理器包括本发明上述任一实施例的中值滤波的处理装置。
[0146] 根据本发明实施例的一个方面,提供的一种电子设备,包括:存储器,用于存储可执行指令;
[0147] 以及处理器,用于与存储器通信以执行该可执行指令从而完成本发明上述任一实施例中值滤波的处理方法的操作。
[0148] 根据本发明实施例的一个方面,提供的一种计算机存储介质,用于存储计算机可读取的指令,该指令被执行时执行本发明上述任一实施例中值滤波的处理方法的操作。
[0149] 本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0150] 可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
[0151] 本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈