欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 图像处理方法和装置、存储介质及电子装置独创技术43866字

图像处理方法和装置、存储介质及电子装置

2021-03-20 17:44:59

图像处理方法和装置、存储介质及电子装置

  技术领域

  本发明涉及移动机器人领域,具体而言,涉及一种图像处理方法和装置、存储介质及电子装置。

  背景技术

  在图像的获取及传输过程中,由于受到各方面因素的影响,会使图像质量发生较大程度的退化,产生各种类型的噪声。图像增强的目的是采取一些相关措施来改善图像视觉效果,增强图像的可视性。其中,均值滤波是图像增强技术中的一种,是图像消除噪声的一种常用的基本方法。

  传统的均值滤波CPU串行算法,需要针对图像矩阵循环计算每个像素点邻域均值,但是,这样的计算方式存在的一个主要的问题就是计算冗余度很高,且在邻域窗口大小不一致时,计算复杂度会发生剧变,耗时大,在对于耗时有较高要求的实际应用中受限较为严重。

  因此,针对相关技术中,在图像处理时,存在计算冗余度高,耗时大的问题,尚未提出有效的技术方案。

  发明内容

  本发明实施例提供了一种图像处理方法和装置、存储介质及电子装置,以至少解决相关技术中,在图像处理时,存在计算冗余度高,耗时大的技术问题。

  根据本发明实施例的一个方面,提供了一种图像处理方法,包括:获取目标像素集合中第1行的第1个像素点的邻域窗口中像素值的均值,其中,上述目标像素集合为待处理图像中待执行滤波处理的像素集合,上述目标像素集合包括H行W列的像素点,上述目标像素集合中第i行的第j个像素点的邻域窗口以上述第i行的第j个像素点为中心,且包括(2n+1)行(2n+1)列的像素点,1≤i≤H,1≤j≤W,上述n,i和j均为自然数;对于上述目标像素集合中第1行的第p个像素点,根据上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,确定上述第1行的第p个像素点的邻域窗口中像素值的均值,其中,2≤p≤W,p为自然数;在确定出上述目标像素集合中第1行的H个像素点的邻域窗口中像素值的均值之后,对于上述目标像素集合中第q列的第t个像素点,根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,其中,1≤q≤W,2≤t≤H;将上述目标像素集合中的每个像素点的像素值替换为上述每个像素点的邻域窗口中像素值的均值。

  根据本发明实施例的另一方面,还提供了一种图像处理装置,包括:第一获取单元,用于获取目标像素集合中第1行的第1个像素点的邻域窗口中像素值的均值,其中,上述目标像素集合为待处理图像中待执行滤波处理的像素集合,上述目标像素集合包括H行W列的像素点,上述目标像素集合中第i行的第j个像素点的邻域窗口以上述第i行的第j个像素点为中心,且包括(2n+1)行(2n+1)列的像素点,1≤i≤H,1≤j≤W,上述n,i和j均为自然数;第一确定单元,用于对于上述目标像素集合中第1行的第p个像素点,根据上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,确定上述第1行的第p个像素点的邻域窗口中像素值的均值,其中,2≤p≤W,p为自然数;第二确定单元,用于在确定出上述目标像素集合中第1行的H个像素点的邻域窗口中像素值的均值之后,对于上述目标像素集合中第q列的第t个像素点,根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,其中,1≤q≤W,2≤t≤H;第一处理单元,用于将上述目标像素集合中的每个像素点的像素值替换为上述每个像素点的邻域窗口中像素值的均值。

  根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述图像处理方法。

  根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的图像处理方法。

  在本发明实施例中,对于待处理图像,目标像素集合为该待处理图像中待执行滤波处理的像素集合,目标像素集合包括H行W列的像素点,上述目标像素集合中第i行的第j个像素点的邻域窗口以上述第i行的第j个像素点为中心,且包括(2n+1)行(2n+1)列的像素点,1≤i≤H,1≤j≤W,上述n,i和j均为自然数,首先,获取目标像素集合中第1行的第1个像素点的邻域窗口中像素值的均值,可以根据目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,确定出该目标像素集合的第1行的第p个像素点,当通过递推的方式确定出目标像素集合中第1行的H个像素点的均值之后,可以通过目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,当通过上述方式确定出目标像素点中每个像素点的像素值的均值之后,可以将上述目标像素集合中的每个像素点的像素值替换为上述每个像素点的邻域窗口中像素值的均值,实现对待处理图像的滤波处理。通过前一个像素点的均值计算后一个像素点的均值,达到了减少计算量的技术效果,进而解决了相关技术中,在图像处理时,存在计算冗余度高,耗时大的技术问题。

  附图说明

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

  图1是根据本发明实施例的一种图像处理方法的应用环境的示意图;

  图2是根据本发明实施例的一种可选的图像处理方法的流程示意图;

  图3是根据本发明实施例的一种可选的像素点的示意图;

  图4是根据本发明实施例的另一种可选的图像处理方法的流程示意图;

  图5是根据本发明实施例的又一种可选的图像处理方法的流程示意图;

  图6是根据本发明实施例的一种可选的图像处理装置的结构示意图;

  图7是根据本发明实施例的一种可选的电子装置的结构示意图。

  具体实施方式

  为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

  需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

  根据本发明实施例的一个方面,提供了一种图像处理方法。可选地,上述图像处理方法可以但不限于应用于如图1所示的应用环境中。如图1所示,终端设备102或服务器104获取目标像素集合中第1行的第1个像素点的邻域窗口中像素值的均值,其中,上述目标像素集合为待处理图像中待执行滤波处理的像素集合,上述目标像素集合包括H行W列的像素点,上述目标像素集合中第i行的第j个像素点的邻域窗口以上述第i行的第j个像素点为中心,且包括(2n+1)行(2n+1)列的像素点,1≤i≤H,1≤j≤W,上述n,i和j均为自然数;对于上述目标像素集合中第1行的第p个像素点,根据上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,确定上述第1行的第p个像素点的邻域窗口中像素值的均值,其中,2≤p≤W,p为自然数;在确定出上述目标像素集合中第1行的H个像素点的邻域窗口中像素值的均值之后,对于上述目标像素集合中第q列的第t个像素点,根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,其中,1≤q≤W,2≤t≤H;将上述目标像素集合中的每个像素点的像素值替换为上述每个像素点的邻域窗口中像素值的均值。以上仅为一种示例,本申请实施例在此不作限定。

  可选地,在本实施例中,上述终端设备可以包括但不限于以下至少之一:手机(如Android手机、iOS手机等)、笔记本电脑、平板电脑、掌上电脑、MID(Mobile InternetDevices,移动互联网设备)、PAD、台式电脑等。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。上述只是一种示例,本实施例对此不做任何限定。

  可选地,在本实施例中,作为一种可选的实施方式,该方法可以由服务器执行,也可以由终端设备执行,或者由服务器和终端设备共同执行,本实施例中,以由终端设备(例如,上述终端设备102)执行为例进行说明。如图2所示,上述图像处理方法的流程可以包括步骤:

  步骤S202,获取目标像素集合中第1行的第1个像素点的邻域窗口中像素值的均值,其中,上述目标像素集合为待处理图像中待执行滤波处理的像素集合,上述目标像素集合包括H行W列的像素点,上述目标像素集合中第i行的第j个像素点的邻域窗口以上述第i行的第j个像素点为中心,且包括(2n+1)行(2n+1)列的像素点,1≤i≤H,1≤j≤W,上述n,i和j均为自然数;

  可选地,上述邻域窗口的大小为(2n+1)*(2n+1),如图3所示,以n=1为例,则邻域窗口的大小为3*3。图3所示的待处理图像为5*5的图像矩阵,当以邻域窗口的大小为3*3进行滤波处理时,上述目标像素集合中包括了H(3)行W(3)列的像素点,即此时的H=3,W=3。

  通过计算上述目标像素集合中第1行的第1个像素点的邻域窗口内所有像素点的像素值的均值,如计算图3中领域窗口内5、10、8、7、3、5、2、8、6像素值的均值,可以得到上述目标像素集合中第1行的第1个像素点(即图3左图中像素值为3的像素点)的均值(即图3中右图中像素值6)。

  步骤S204,对于上述目标像素集合中第1行的第p个像素点,根据上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,确定上述第1行的第p个像素点的邻域窗口中像素值的均值,其中,2≤p≤W,p为自然数;

  可选地,可以通过目标像素集合中第1行的第P-1(如1)个像素点的邻域窗口内的均值,通过递推的方式,来确定目标像素集合中第1行的第P(如2)个像素点的均值,其中,2≤p≤W,p为自然数。

  步骤S206,在确定出上述目标像素集合中第1行的H个像素点的邻域窗口中像素值的均值之后,对于上述目标像素集合中第q列的第t个像素点,根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,其中,1≤q≤W,2≤t≤H;

  可选地,通过递推的方式,依次计算出目标像素集合中第1行的H个像素点的邻域窗口中像素值的均值之后,开始计算列方向上待滤波像素点的均值。

  可以根据上述目标像素集合中第q(如1)列的第t-1(如3-1)个像素点的邻域窗口中像素值的均值,确定出上述第q(如1)列的第t(如3)个像素点的邻域窗口中像素值的均值,其中,1≤q≤W,2≤t≤H。

  步骤S208,将上述目标像素集合中的每个像素点的像素值替换为上述每个像素点的邻域窗口中像素值的均值。

  可选地,通过上述方式可以确定出目标像素集合中所有的待执行滤波处理的像素点的均值,然后将目标像素集合中的每个像素点的像素值替换为上述每个像素点的邻域窗口中像素值的均值,来完成对待处理图像的滤波处理。

  可选地,上述图像处理方法可以但不限于对图像进行滤波处理的场景中。

  通过本实施例,对于待处理图像,目标像素集合为该待处理图像中待执行滤波处理的像素集合,目标像素集合包括H行W列的像素点,上述目标像素集合中第i行的第j个像素点的邻域窗口以上述第i行的第j个像素点为中心,且包括(2n+1)行(2n+1)列的像素点,1≤i≤H,1≤j≤W,上述n,i和j均为自然数,首先,获取目标像素集合中第1行的第1个像素点的邻域窗口中像素值的均值,可以根据目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,确定出该目标像素集合的第1行的第p个像素点,当通过递推的方式确定出目标像素集合中第1行的H个像素点的均值之后,可以通过目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,当通过上述方式确定出目标像素点中每个像素点的像素值的均值之后,可以将上述目标像素集合中的每个像素点的像素值替换为上述每个像素点的邻域窗口中像素值的均值,实现对待处理图像的滤波处理。通过前一个像素点的均值计算后一个像素点的均值,达到了减少计算量的技术效果,进而解决了相关技术中,在图像处理时,存在计算冗余度高,耗时大的技术问题。

  在一种可选的实施例中,上述对于上述目标像素集合中第1行的第p个像素点,根据上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,确定上述第1行的第p个像素点的邻域窗口中像素值的均值,包括:根据上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值、上述第1行的第p-1个像素点的邻域窗口中第1列像素点的像素值之和、以及上述第1行的第p个像素点的邻域窗口中第2n+1列像素点的像素值之和,确定上述第1行的第p个像素点的邻域窗口中像素值的均值。

  可选地,如图3所示,可以根据目标像素集合中第1行的第p-1(如1)个像素点的邻域窗口中像素值的均值、第1行的第p-1(如1)个像素点的邻域窗口中第1列像素点的像素值之和、以及上述第1行的第p(如2)个像素点的邻域窗口中第2n+1(如3)列像素点的像素值之和,确定上述第1行的第p个像素点的邻域窗口中像素值的均值。

  在一种可选的实施例中,上述根据上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值、上述第1行的第p-1个像素点的邻域窗口中第1列像素点的像素值之和、以及上述第1行的第p个像素点的邻域窗口中第2n+1列像素点的像素值之和,确定上述第1行的第p个像素点的邻域窗口中像素值的均值,包括:通过以下公式确定上述第1行的第p个像素点的邻域窗口中像素值的均值:

  

  其中,上述为上述第1行的第p个像素点的邻域窗口中像素值的均值,上述为上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,上述∑Col(p-1-n,1)为上述第1行的第p-1个像素点的邻域窗口中第1列像素点的像素值之和,上述∑Col(p+n,1)为上述第1行的第p个像素点的邻域窗口中第2n+1列像素点的像素值之和。

  在一种可选的实施例中,上述对于上述目标像素集合中第q列的第t个像素点,根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,包括:根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值、上述第q列的第t-1个像素点的邻域窗口中第1行像素点的像素值之和、以及上述第q列的第t个像素点的邻域窗口中第2n+1行像素点的像素值之和,确定上述第q列的第t个像素点的邻域窗口中像素值的均值。

  可选地,如图3所示,可以根据上述目标像素集合中第q(如1)列的第t-1(如2)个像素点的邻域窗口中像素值的均值、上述第q(如1)列的第t-1(如2)个像素点的邻域窗口中第1行像素点的像素值之和、以及上述第q(如1)列的第t(如3)个像素点的邻域窗口中第2n+1(如3)行像素点的像素值之和,确定上述第q(如1)列的第t(如3)个像素点的邻域窗口中像素值的均值。

  在一种可选的实施例中,上述根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值、上述第q列的第t-1个像素点的邻域窗口中第1行像素点的像素值之和、以及上述第q列的第t个像素点的邻域窗口中第2n+1行像素点的像素值之和,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,包括:根据以下公式确定上述第q列的第t个像素点的邻域窗口中像素值的均值:

  

  其中,上述为上述第q列的第t个像素点的邻域窗口中像素值的均值,上述为目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,上述∑Row(q,t-1-n)为上述第q列的第t-1个像素点的邻域窗口中第1行像素点的像素值之和,上述∑Row(q,t+n)为上述第q列的第t个像素点的邻域窗口中第2n+1行像素点的像素值之和。

  在一种可选的实施例中,上述对于上述目标像素集合中第q列的第t个像素点,根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,包括:使用s个线程并行地对上述目标像素集合中的s列的像素点执行以下操作:根据上述目标像素集合中第qs列的第ts-1个像素点的邻域窗口中像素值的均值,确定上述第qs列的第ts个像素点的邻域窗口中像素值的均值,其中,1≤s≤W,1≤qs≤s,2≤ts≤H。

  在一种可选的实施例中,上述使用s个线程并行地对上述目标像素集合中的s列的像素点执行以下操作:根据上述目标像素集合中第qs列的第ts-1个像素点的邻域窗口中像素值的均值,确定上述第qs列的第ts个像素点的邻域窗口中像素值的均值,包括:使用W个线程并行地对上述目标像素集合中的W列的像素点执行以下操作:根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,其中,1≤q≤W,2≤t≤H。

  可选地,在确定出第1行的H个像素点的邻域窗口中像素值的均值之后,可以使用W个线程并行地确定出目标像素集合中的W列的像素点的均值,如根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,其中,1≤q≤W,2≤t≤H。

  通过本实施例,通过这种并行地方式,可以快速地计算出目标像素集合中像素点的均值,提高了确定待处理图像中待执行滤波处理的像素点的均值的速度,提高了滤波处理的速度。

  下面结合一可选示例对图像处理方法的流程进行说明,该方法可以包括以下步骤:

  步骤1,假设选取的邻域滤波窗口大小为(2n+1)*(2n+1),另假设f(2n,2n)像素点的邻域均值为N(2n,2n),其中,N(x,y)表示以(x,y)(f(2n,2n)像素点的坐标)为中心大小为(2n+1)*(2n+1)的邻域窗口像素集合。其中,x表示列方向,y表示行方向。

  步骤2,计算行方向上的像素邻域均值,与像素点(x,y)相邻的像素点(x+1,y)邻域窗口内的均值可使用以下计算方式表示为:

  

  其中,表示像素点(x,y)邻域窗口内的均值,∑Col(x-n,y)表示以(x,y)为中心的邻域窗口第1列像素和,∑Col(x+1+n,y)表示以(x+1,y)为中心的邻域窗口的第2n+1列像素之和。

  或者,还可以通过以下公式计算像素点(x+1,y)邻域窗口内的均值:

  

  其中,N(x,y)表示以(x,y)(f(2n,2n)像素点的坐标)为中心大小为(2n+1)*(2n+1)的邻域窗口像素集合。

  步骤3,根据水平方向上的计算同理,计算列方向上的各像素邻域均值有如下公式:

  

  其中,表示像素点(x,y)邻域窗口内的均值,∑Row(x,y-n)表示以(x,y)为中心邻域窗口的第1行像素的和,∑Row(x,y+1+n)表示以(x,y+1+n)为中心邻域窗口的第2n+1行像素的和。

  或者,还可以通过以下公式计算像素点(x,y+1)邻域窗口内的均值:

  

  其中,N(x,y)表示以(x,y)(f(2n,2n)像素点的坐标)为中心大小为(2n+1)*(2n+1)的邻域窗口像素集合。

  步骤4,根据以上两个步骤逐个计算每个邻域像素的均值,最终可以计算得出整张图像经过均值滤波之后的结果。

  通过本实施例,上述计算像素点的邻域窗口的均值,不再像传统均值滤波算法中逐个像素从左到右,从上到下移动滑动窗,而是在对应前一像素的基础上推导计算,降低了计算复杂度,将算法中的冗余计算去除,可以在很大程度上提升算法的执行效率,提高了滤波处理的效率。

  下面结合另一可选示例对图像处理方法的流程进行说明,该方法可以包括以下步骤:

  需要说明的是,GPU的发展已经突破了摩尔定律的限制,相比于CPU,GPU运算速度可以达到几倍乃至上百倍,功耗相对来说也比较小,主要是由于CPU与GPU设计的目标与体系结构不同。CPU使用复杂的逻辑控制和分支预测以及大量缓存来提高执行效率,但是用于计算的逻辑运算单元少,而GPU相比来说存在大量的逻辑运算单元,对于大规模并行运算有很好的效果。GPU中存在大量线程,每一个线程都对应一个特定的线程ID,在资源足够及设计合理的情况下,计算时使用一个线程对应一个位置元素的计算,可以一次计算出所有结果,不在需要任何循环的过程,最大程度上加速程序执行过程。

  一个良好的并行程序最终是CPU与GPU协同计算得到的结果。整个算法中串行部分在CPU上执行,并行部分在GPU上执行,另外由于GPU的计算部分需要在显存上执行,在CPU上完成计算后需要将数据拷贝至显存上,计算结束之后需将最终结果拷贝至内存中,整个算法中要尽量将并行部分一次性执行完,避免因内存拷贝造成的时间浪费。此并行算法整体的执行流程图如图4所示。

  如图4所示,整个并行算法的执行流程如下:

  步骤S401,初始化部分,需要CPU读入待处理原始数据图像矩阵,确定均值滤波所使用的邻域窗口半径以及对边界(边界像素点)的处理方式,在不同的应用中邻域半径和边界处理方式均不相同。

  步骤S402,先根据邻域半径以及对应的边界处理方式计算第一个元素经过均值滤波后的结果,然后根据本发明中的方法依次递推计算出第一行剩余位置像素点的均值的结果;随后将处理完之后的数据从CPU内存拷贝至GPU显存中,在显存上进行计算。

  可选地,本发明中的均值滤波算法是一个前后递推的过程,存在一定的数据依赖性,因此无法使得一个位置对应一个线程进行完全的并行,可以对应一列上的元素,分配一个线程来进行计算,在一列上的一个线程循环计算该列所有元素的均值滤波结果,假设该图像矩阵待执行滤波处理的像素点有h行,w列,则需分配w个线程(Thread),w个线程同时进行计算即可。

  均值滤波的并行部分如图5所示,mean表示已经计算出的均值,val表示待计算的均值,GPU中的一个线程Thread负责一列均值的计算,多个线程Thread之间互不影响,单个线程Thread内部是依次循环计算出各对应位置的均值;在计算结束之后将得到的结果从显存拷贝至内存中,再从内存中取出相应结果后均值滤波阶段即完成。

  最后,将均值滤波后的结果取出并替换掉原始图像中对应像素点的值,即可得到均值滤波之后的图像。

  需要说明的是,图5所示,为先按照从上到至下方向计算第一行像素点的均值,然后以并列线程的方式计算剩余像素点的均值。或者,

  按照从下至上方向计算第一列的均值,然后以并列线程的方式计算剩余像素点的均值。或者

  按照从左至右方向计算第一列的均值,然后以并列线程的方式计算剩余像素点的均值。或者

  按照从右至左方向计算最后一列的均值,然后以并列线程的方式计算剩余像素点的均值。

  上述过程与步骤S401-S402的原理相同,在此不再赘述。

  以上仅为一种示例,本发明实施例在此不作任何限定。

  通过本实施例,通过递推的方式进行滤波处理,减少了传统滤波算法中存在的冗余计算。另外,使用GPU对运算进行并行化,更大程度上加快了程序的执行速度,可以最大程度满足实际应用中对于耗时的需求,提高了图像滤波的处理速度。

  需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

  根据本发明实施例的又一方面,还提供了一种图像处理装置,如图6所示,该装置包括:

  第一获取单元602,用于获取目标像素集合中第1行的第1个像素点的邻域窗口中像素值的均值,其中,上述目标像素集合为待处理图像中待执行滤波处理的像素集合,上述目标像素集合包括H行W列的像素点,上述目标像素集合中第i行的第j个像素点的邻域窗口以上述第i行的第j个像素点为中心,且包括(2n+1)行(2n+1)列的像素点,1≤i≤H,1≤j≤W,上述n,i和j均为自然数;

  第一确定单元604,用于对于上述目标像素集合中第1行的第p个像素点,根据上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,确定上述第1行的第p个像素点的邻域窗口中像素值的均值,其中,2≤p≤W,p为自然数;

  第二确定单元606,用于在确定出上述目标像素集合中第1行的H个像素点的邻域窗口中像素值的均值之后,对于上述目标像素集合中第q列的第t个像素点,根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,其中,1≤q≤W,2≤t≤H;

  第一处理单元608,用于将上述目标像素集合中的每个像素点的像素值替换为上述每个像素点的邻域窗口中像素值的均值。

  可选地,第一获取单元602可以用于执行步骤S202,第一确定单元604可以用于执行步骤S204,第二确定单元606可以用于执行步骤S206,第一处理单元606可以用于执行步骤S206。

  通过本实施例,对于待处理图像,目标像素集合为该待处理图像中待执行滤波处理的像素集合,目标像素集合包括H行W列的像素点,上述目标像素集合中第i行的第j个像素点的邻域窗口以上述第i行的第j个像素点为中心,且包括(2n+1)行(2n+1)列的像素点,1≤i≤H,1≤j≤W,上述n,i和j均为自然数,首先,获取目标像素集合中第1行的第1个像素点的邻域窗口中像素值的均值,可以根据目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,确定出该目标像素集合的第1行的第p个像素点,当通过递推的方式确定出目标像素集合中第1行的H个像素点的均值之后,可以通过目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,当通过上述方式确定出目标像素点中每个像素点的像素值的均值之后,可以将上述目标像素集合中的每个像素点的像素值替换为上述每个像素点的邻域窗口中像素值的均值,实现对待处理图像的滤波处理。通过前一个像素点的均值计算后一个像素点的均值,达到了减少计算量的技术效果,进而解决了相关技术中,在图像处理时,存在计算冗余度高,耗时大的技术问题。

  作为一种可选的技术方案,上述第一确定单元,还用于根据上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值、上述第1行的第p-1个像素点的邻域窗口中第1列像素点的像素值之和、以及上述第1行的第p个像素点的邻域窗口中第2n+1列像素点的像素值之和,确定上述第1行的第p个像素点的邻域窗口中像素值的均值。

  作为一种可选的技术方案,上述第一确定单元,还用于通过以下公式确定上述第1行的第p个像素点的邻域窗口中像素值的均值:

  

  其中,上述为上述第1行的第p个像素点的邻域窗口中像素值的均值,上述为上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,上述∑Col(p-1-n,1)为上述第1行的第p-1个像素点的邻域窗口中第1列像素点的像素值之和,上述∑Col(p+n,1)为上述第1行的第p个像素点的邻域窗口中第2n+1列像素点的像素值之和。

  作为一种可选的技术方案,上述第二确定单元,还用于根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值、上述第q列的第t-1个像素点的邻域窗口中第1行像素点的像素值之和、以及上述第q列的第t个像素点的邻域窗口中第2n+1行像素点的像素值之和,确定上述第q列的第t个像素点的邻域窗口中像素值的均值。

  作为一种可选的技术方案,上述第二确定单元,还用于根据以下公式确定上述第q列的第t个像素点的邻域窗口中像素值的均值:

  

  

  其中,上述为上述第q列的第t个像素点的邻域窗口中像素值的均值,上述为目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,上述∑Row(q,t-1-n)为上述第q列的第t-1个像素点的邻域窗口中第1行像素点的像素值之和,上述∑Row(q,t+n)为上述第q列的第t个像素点的邻域窗口中第2n+1行像素点的像素值之和。

  作为一种可选的技术方案,上述第二确定单元,还用于使用s个线程并行地对上述目标像素集合中的s列的像素点执行以下操作:根据上述目标像素集合中第qs列的第ts-1个像素点的邻域窗口中像素值的均值,确定上述第qs列的第ts个像素点的邻域窗口中像素值的均值,其中,1≤s≤W,1≤qs≤s,2≤ts≤H。

  作为一种可选的技术方案,上述第二确定单元,还用于使用W个线程并行地对上述目标像素集合中的W列的像素点执行以下操作:根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,其中,1≤q≤W,2≤t≤H。

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

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

  S1,获取目标像素集合中第1行的第1个像素点的邻域窗口中像素值的均值,其中,上述目标像素集合为待处理图像中待执行滤波处理的像素集合,上述目标像素集合包括H行W列的像素点,上述目标像素集合中第i行的第j个像素点的邻域窗口以上述第i行的第j个像素点为中心,且包括(2n+1)行(2n+1)列的像素点,1≤i≤H,1≤j≤W,上述n,i和j均为自然数;

  S2,对于上述目标像素集合中第1行的第p个像素点,根据上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,确定上述第1行的第p个像素点的邻域窗口中像素值的均值,其中,2≤p≤W,p为自然数;

  S3,在确定出上述目标像素集合中第1行的H个像素点的邻域窗口中像素值的均值之后,对于上述目标像素集合中第q列的第t个像素点,根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,其中,1≤q≤W,2≤t≤H;

  S4,用于将上述目标像素集合中的每个像素点的像素值替换为上述每个像素点的邻域窗口中像素值的均值。

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

  可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取器)、磁盘或光盘等。

  根据本发明实施例的又一个方面,还提供了一种用于实施上述图像处理方法的电子装置,如图7所示,该电子装置包括存储器702和处理器704,该存储器702中存储有计算机程序,该处理器704被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

  可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。

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

  S1,获取目标像素集合中第1行的第1个像素点的邻域窗口中像素值的均值,其中,上述目标像素集合为待处理图像中待执行滤波处理的像素集合,上述目标像素集合包括H行W列的像素点,上述目标像素集合中第i行的第j个像素点的邻域窗口以上述第i行的第j个像素点为中心,且包括(2n+1)行(2n+1)列的像素点,1≤i≤H,1≤j≤W,上述n,i和j均为自然数;

  S2,对于上述目标像素集合中第1行的第p个像素点,根据上述目标像素集合中第1行的第p-1个像素点的邻域窗口中像素值的均值,确定上述第1行的第p个像素点的邻域窗口中像素值的均值,其中,2≤p≤W,p为自然数;

  S3,在确定出上述目标像素集合中第1行的H个像素点的邻域窗口中像素值的均值之后,对于上述目标像素集合中第q列的第t个像素点,根据上述目标像素集合中第q列的第t-1个像素点的邻域窗口中像素值的均值,确定上述第q列的第t个像素点的邻域窗口中像素值的均值,其中,1≤q≤W,2≤t≤H;

  S4,用于将上述目标像素集合中的每个像素点的像素值替换为上述每个像素点的邻域窗口中像素值的均值。

  可选地,本领域普通技术人员可以理解,图7所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图7中所示更多或者更少的组件(如网络接口等),或者具有与图7所示不同的配置。

  其中,存储器702可用于存储软件程序以及模块,如本发明实施例中的图像处理方法和装置对应的程序指令/模块,处理器704通过运行存储在存储器702内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的图像处理方法。存储器702可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器702可进一步包括相对于处理器704远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器702具体可以但不限于用于存储目标对象的目标高度等信息。作为一种示例,如图7所示,上述存储器702中可以但不限于包括上述图像处理装置中的第一获取单元602、第一确定单元604、第二确定单元606、第一处理单元606。此外,还可以包括但不限于上述图像处理装置中的其他模块单元,本示例中不再赘述。

  可选地,上述的传输装置706用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置706包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置706为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

  此外,上述电子装置还包括:显示器708和连接总线710,用于连接上述电子装置中的各个模块部件。

  在其他实施例中,上述终端或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。

  可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

  上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

  上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。

  在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

  在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

  作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

  另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

  以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

《图像处理方法和装置、存储介质及电子装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)