图像处理方法、装置、系统及介质与流程

文档序号:18831434发布日期:2019-10-09 03:34阅读:319来源:国知局
图像处理方法、装置、系统及介质与流程

本公开涉及互联网技术领域,更具体地,涉及一种图像处理方法、装置、系统和介质。



背景技术:

现有技术中在进行图像颜色抠除时,通常是选定要抠除的颜色,然后将图像中与选定的颜色在一定容差范围内的部分全部抠除。这样一方面抠图不精细,另一方面会导致想要保留的主体中具有与选定颜色相同的部分也被抠除,进而导致图像不可用。



技术实现要素:

有鉴于此,本公开提供了一种能够更为精细地抠图的图像处理方法、装置、系统和介质。

本公开的一个方面提供了一种图像处理方法。所述方法包括:获取待处理的图像;确定第一颜色和第二颜色,其中所述第一颜色为所述图像中需要被替换的颜色,所述第二颜色为将所述第一颜色替换后所得的颜色;将起始像素点的颜色替换为所述第二颜色,其中所述起始像素点为所述图像中颜色为所述第一颜色的像素点;设置查找队列,其中所述起始像素点为所述查找队列初始时的唯一元素;循环执行如下替换颜色和更新所述查找队列的操作,直到所述查找队列为空时停止所述循环,包括在每一轮循环中:将候选像素点的颜色替换为所述第二颜色,其中所述候选像素点为本轮循环的中心像素点周围的像素点中颜色为所述第一颜色的像素点,其中所述中心像素点为从所述查找队列的元素中选择确定的,以及通过从所述查找队列中移除作为所述中心像素点的元素、以及将所述候选像素点添加到所述查找队列中,来更新所述查找队列。

根据本公开的实施例,所述将候选像素点的颜色替换为所述第二颜色,包括从所述查找队列中确定一个元素作为所述中心像素点,查找所述候选像素点,以及在存在所述候选像素点时,将所述候选像素点的颜色替换为所述第二颜色。所述更新所述查找队列,包括从所述查找队列中删除作为所述中心像素点的元素,得到临时查找队列,以及在存在所述候选像素点时,将所述候选像素点添加到所述临时查找队列以得到更新后的所述查找队列,或者在不存在所述候选像素点时,以所述临时查找队列作为更新后的所述查找队列。

根据本公开的实施例,所述中心像素点周围的像素点包括与所述中心像素点的边界相接触的全部像素点。

根据本公开的实施例,所述方法还包括基于用户操作确定所述起始像素点。所述确定第一颜色,包括将与所述起始像素点的颜色的容差为预设值以内的颜色作为所述第一颜色。

根据本公开的实施例,所述获取待处理的图像包括获取通过canvas渲染到网页的所述图像。

根据本公开的实施例,所述从所述查找队列中确定一个元素作为所述中心像素点,包括将所述查找队列中位于队列头部的元素作为所述中心像素点;和/或所述将所述候选像素点添加到所述临时查找队列,包括将所述候选像素点添加到所述临时查找队列的队列末尾。

本公开的另一方面提供了一种图像处理装置。所述装置包括获取模块、颜色确定模块、起始点替换模块、队列设置模块以及循环替换模块。所述获取模块用于获取待处理的图像。所述颜色确定模块用于确定第一颜色和第二颜色,其中所述第一颜色为所述图像中需要被替换的颜色,所述第二颜色为将所述第一颜色替换后所得的颜色。所述起始点替换模块用于将起始像素点的颜色替换为所述第二颜色,其中所述起始像素点为所述图像中颜色为所述第一颜色的像素点。所述队列设置模块用于设置查找队列,其中所述起始像素点为所述查找队列初始时的唯一元素。所述循环替换模块,包括颜色替换子模块和队列更新子模块,用于循环执行替换颜色和更新所述查找队列的操作,直到所述查找队列为空时停止所述循环。其中,所述颜色替换子模块用于在每一轮循环中将候选像素点的颜色替换为所述第二颜色,其中所述候选像素点为本轮循环的中心像素点周围的像素点中颜色为所述第一颜色的像素点,其中所述中心像素点为从所述查找队列的元素中选择确定的。以及所述队列更新子模块用于在所述每一轮循环中通过从所述查找队列中移除作为所述中心像素点的元素、以及将所述候选像素点添加到所述查找队列中,来更新所述查找队列。

根据本公开的实施例,所述颜色替换子模块具体用于在所述每一轮循环中从所述查找队列中确定一个元素作为所述中心像素点,查找所述候选像素点,以及在存在所述候选像素点时,将所述候选像素点的颜色替换为所述第二颜色。所述队列更新子模块具体用于在所述每一轮循环中,从所述查找队列中删除作为所述中心像素点的元素,得到临时查找队列,以及在存在所述候选像素点时将所述候选像素点添加到所述临时查找队列以得到更新后的所述查找队列,或者在不存在所述候选像素点时以所述临时查找队列作为更新后的所述查找队列。

根据本公开的实施例,所述中心像素点周围的像素点包括与所述中心像素点的边界相接触的全部像素点。

根据本公开的实施例,所述装置还包括起始点确定模块。所述起始点确定模块用于基于用户操作确定所述起始像素点。所述颜色确定模块具体用于将与所述起始像素点的颜色的容差在预设范围内的颜色作为所述第一颜色。

根据本公开的实施例,所述获取模块具体用于获取通过canvas渲染到网页的所述图像。

根据本公开的实施例,所述从所述查找队列中确定一个元素作为所述中心像素点,包括将所述查找队列中位于队列头部的元素作为所述中心像素点。根据本公开的实施例,所述将所述候选像素点添加到所述临时查找队列,包括将所述候选像素点添加到所述临时查找队列的队列末尾。

本公开的另一方面提供了一种图像处理系统。所述系统包括存储有可执行指令的一个或多个存储器、以及一个或多个处理器。所述一个或多个处理器执行所述可执行指令,以实现如上所述的图像处理方法。

本公开的另一方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的图像处理方法。

本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

根据本公开的实施例,可以将从起始像素点开始具有第一颜色的连续区域替换为第二颜色,避免了将要保留的主体中具有第一颜色的部分进行颜色替换的问题,从而至少部分地实现了更为精细的抠图。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1a示意性示出了根据本公开实施例的图像处理方法、装置、系统和介质的应用系统架构;

图1b示意性示出了根据本公开实施例的图像处理方法、装置、系统和介质的应用情景;

图2示意性示出了根据本公开实施例的图像处理方法的流程图;

图3示意性示出了根据本公开实施例的替换候选像素点的颜色的方法流程;

图4示意性示出了根据本公开实施例的更新查找队列的方法流程;

图5a示意性示出了根据本公开实施例的将起始像素点的颜色替换为第二颜色的效果示意;

图5b示意性示出了根据本公开实施例的经过第一轮循环替换颜色后的效果示意;

图6示意性示出了根据本公开实施例的图像处理装置的方框图;以及

图7示意性示出了根据本公开实施例的适于实现图像处理方法的计算机系统的方框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。

本公开的实施例提供了一种图像处理方法、装置、系统和介质。所述方法包括:获取待处理的图像;确定第一颜色和第二颜色,其中第一颜色为图像中需要被替换的颜色,第二颜色为将第一颜色替换后所得的颜色;将起始像素点的颜色替换为第二颜色,其中起始像素点为图像中颜色为第一颜色的像素点;设置查找队列,其中起始像素点为查找队列初始时的唯一元素;循环执行如下替换颜色和更新查找队列的操作,直到查找队列为空时停止循环,包括在每一轮循环中:将候选像素点的颜色替换为第二颜色,其中候选像素点为本轮循环的中心像素点周围的像素点中颜色为第一颜色的像素点,其中,中心像素点为从查找队列的元素中选择确定的,以及通过从查找队列中移除作为中心像素点的元素、以及将候选像素点添加到查找队列中,来更新查找队列。

根据本公开的实施例,可以将从起始像素点开始具有第一颜色的连续区域替换为第二颜色,避免了将要保留的主体中具有第一颜色的部分进行颜色替换的问题,从而至少部分地实现了更为精细的抠图。

图1a示意性示出了根据本公开实施例的图像处理方法、装置、系统和介质的应用系统架构100。需要注意的是,图1a所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1a所示,根据本公开实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。例如,用户可以使用终端设备101、102、103上传要处理的图片等,并接收服务器105反馈的处理后的图片。终端设备101、102、103上可以安装有各种通讯客户端应用,例如图像处理类应用、或者网页浏览器应用等(仅为示例)。

终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103上传的图片数据等进行处理(仅为示例)。后台管理服务器可以对接收到的图像处理请求等数据对图片进行分析等处理,并将处理结果(例如根据用户请求处理得到的图片数据等)反馈给终端设备101、102、103。

图1b示意性示出了根据本公开实施例的图像处理方法、装置、系统和介质的应用情景。

结合图1a和图1b,例如用户利用终端设备101、102、103向服务器105上传了图片11,并向服务器105发送图像处理请求,请求服务器105处理图片11。在一个实施例中,该图像处理请求例如可以是,将图像11中除了两个包的图像之外的区域的颜色替换为透明色或者白色。服务器105可以执行根据本公开实施例的图像处理方法,将图片11处理成图片12。然后,服务器105可以将图片12通过网络104反馈给终端设备101、102、103。

可以理解,本公开实施例所提供的图像处理方法可以由服务器105执行。相应地,本公开实施例所提供的图像处理装置、系统、和介质可以设置于服务器105中。

或者,本公开实施例所提供的图像处理方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的图像处理装置、系统和介质也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。

或者,本公开实施例所提供的图像处理方法也可以由终端设备101、102、103执行。相应地,本公开实施例所提供的图像处理装置、系统、和介质可以设置于终端设备101、102、103中。

再或者,本公开实施例所提供的图像处理方法也可以部分由服务器105执行,部分由终端设备101、102、10执行。相应地,本公开实施例所提供的图像处理装置、系统和介质也可以部分设置于服务器105,部分设置于终端设备101、102、103。

需要说明的是,图1a和图1b仅为本公开实施例的应用示例,不对本公开实施例构成限定。图1a中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

图2示意性示出了根据本公开实施例的图像处理方法的流程图。

如图2所示,该图像处理方法包括操作s210~操作s240,以及循环执行的操作s250~操作s270。

具体地,在操作s210,获取待处理的图像。例如,待处理的图像可以是用户利用终端终端设备101、102、103上传的图像数据(例如,图片11)。根据本公开的一个实施例,操作s210具体可以是获取通过canvas渲染到网页的图像。例如,当用户利用终端终端设备101、102、103上传图片11时,可以使用javascript通过canvas将图片11渲染到网页中。canvas可以逐像素绘图,因此获取到图像后,可以通过canvas获取到图像中的像素点。

在操作s220,确定第一颜色和第二颜色,其中第一颜色为图像中需要被替换的颜色,第二颜色为将第一颜色替换后所得的颜色。该第一颜色和第二颜色可以是用户指定的颜色。例如,该第一颜色可以是基于用户点击图片中要替换的颜色的像素点而确定的颜色(例如,该第一颜色为与用户点击的像素点的颜色在一定容差范围内的颜色)。该第二颜色可以是用户指定的将第一颜色替换后所得的颜色(例如白色、透明色等)。

在操作s230,将起始像素点的颜色替换为第二颜色,其中起始像素点为图像中颜色为第一颜色的像素点。

根据本公开的一个实施例,操作s230之前还可以基于用户操作确定起始像素点。相应地,在操作s220中可以将与起始像素点的颜色的容差为预设值(例如,10)以内的颜色作为第一颜色。根据容差的设置,可以灵活地扩大或缩小被替换的颜色的范围,从而做到更加精细、灵活地抠图等。

在操作s240,设置查找队列,其中起始像素点为查找队列初始时的唯一元素。

然后循环执行s250的判断操作、操作s260的替换颜色操作、以及操作s270的更新查找队列的操作,直到在操作s250中判断得到查找队列为空时停止循环。

具体地在操作s250,判断查找队列是否为空。例如,第一次循环时,查找队列中具有起始像素点这个元素,此时该查找队列不为空。接下来执行操作s260。

在操作s260,将候选像素点的颜色替换为第二颜色,其中候选像素点为本轮循环的中心像素点周围的像素点中颜色为第一颜色的像素点,其中,中心像素点为从查找队列的元素中选择确定的(例如,可以从查找队列中任选一个元素作为该中心像素点)。

根据本公开的一个实施例,中心像素点周围的像素点包括与中心像素点的边界相接触的全部像素点(例如,该中心像素点的上下左右四个方向上的像素点)。

例如,在第一轮循环中,候选像素点就是起始像素点周围的具有第一颜色的像素点。在操作s260中可以将起始像素点周围的具有第一颜色的像素点的颜色都替换为第二颜色。由于起始像素点的颜色在操作s230中已经被替换为第二颜色了,再经过操作s260在第一轮循环的执行后,起始像素点周围的原本具有第一颜色的像素点的颜色也被替换为第二颜色了,这样在起始像素点周围形成了具有第二颜色的一个连通区域。

然后在操作s270,通过从查找队列中移除作为中心像素点的元素、以及将候选像素点添加到查找队列中,来更新查找队列。例如,在第一轮循环中,从该查找队列中移除掉该起始像素点,并将查找到的该起始像素点周围的候选像素点添加到该查找队列中,以此方式来更新该查找队列。

在操作s270之后再返回到操作s250进行下一轮循环。如此反复循环,直到在操作s250中判断得到查找队列为空时停止循环

由此可见,该查找队列中的元素为这样一类像素点,这类像素点属于被替换为第二颜色、但尚未查找其周围是否还存在需要替换颜色的区域的像素点。根据本公开的实施例,一旦在某一轮循环中,在操作s260中选择了查找队列中的某个元素作为中心像素点,并查找该元素周围的候选像素点后,在操作s270中就会相应地从查找队列中移除该作为中心像素点的元素,并在操作s260中将查找到的这些候选像素点添加到该查找队列中。

根据本公开的实施例,该图像处理方法中设置了一个查找队列,该查找队列中的元素属于被替换为第二颜色、但尚未查找其周围是否还存在需要替换颜色的区域的像素点。通过在每一轮循环中对查找队列的不断更新,可以不断获取到与起始像素点相连通的、但尚未查找其周围是否还存在需要替换颜色的区域的像素点。并且,通过不断从该查找队列删除中心像素点和添加每一轮的候选像素点(如果存在的话),不断更新该查找队列,直到该查找队列为空队列为止。以此方式,根据本公开实施例的图像方法,可以将从起始像素点开始、且与起始像素点相连通的区域中的第一颜色替换为第二颜色,从而避免了在抠图过程中对要保留的主体内部的抠除,进而可以实现更为精细地抠图。

图3示意性示出了根据本公开实施例的操作s260中替换候选像素点的颜色的方法流程。

如图3所示,操作s260具体可以包括操作s301~操作s303。

在操作s301,从查找队列中确定一个元素作为中心像素点。根据本公开的一个实施例,操作s301中可以将查找队列中位于队列头部的元素作为中心像素点。

在操作s302,查找候选像素点。候选像素点为操作s301中确定的中心像素点周围的像素点中颜色为第一颜色的像素点。

在操作s303,在存在候选像素点时,将候选像素点的颜色替换为第二颜色。如果不存在候选像素点,即中心像素点周围的区域都不是第一颜色,此时不进行颜色替换。

图4示意性示出了根据本公开实施例的操作s270中更新查找队列的方法流程。

如图4所示,操作s270具体可以包括操作s401、操作s402、以及操作s403或操作s404。

在操作s401,从查找队列中删除作为中心像素点的元素,得到临时查找队列。

在操作s402,判断是否存在候选像素点。例如可以是根据前述操作s302的查找结果进行判断。如果操作s402的判断结果为是,则执行操作s403;或者如果操作s402的判断结果为否,则执行操作s404。

在操作s403,在存在候选像素点时,将候选像素点添加到临时查找队列以得到更新后的查找队列。根据本公开的一个实施例,该将候选像素点添加到临时查找队列,可以是将候选像素点添加到临时查找队列的队列末尾。

在操作s404,在不存在候选像素点时,以临时查找队列作为更新后的查找队列。

根据本公开的实施例,在对该查找队列进行更新时,以查找队列中的某个元素作为中心像素点,将该中心像素点周围为需要替换颜色的像素点的作为候选像素点进行颜色替换,并且,在每轮循环中从查找队列中移除作为中心像素点的元素并将本轮循环中替换了颜色的像素点加入队列中。这样,通过这个查找队列可以实现在不同轮次的循环中的中心像素点的连续性转移。

图5a示意性示出了根据本公开实施例的将起始像素点的颜色替换为第二颜色的效果示意;图5b示意性示出了根据本公开实施例的经过第一轮循环替换颜色后的效果示意。图5a与图5b中一个方格表示图片11中的一个像素点。需要说明的是,图5a与图5b的像素尺寸和比例仅是示意性的,为了对本公开实施例的方法的实现进行更形象化地说明。实际中像素点要比图5a与图5b中示意的小得多。

在图5a和图5b中,对每个像素点的定位可以根据对图片11标示出的横坐标和纵坐标来确定。例如,图5a中起始像素点的坐标为(0,0)

以下示例性说明中,q表示查找队列;q(x,y)表示图片11中的像素点,其中x表示像素点的横坐标,y表示像素点的纵坐标;第一颜色为与起始像素点q(0,0)在进行颜色替换前的颜色在预设的容差范围(例如,10)的颜色,第二颜色为白色。

对比图5a和图1b可以看出,在操作s230中图片11的起始像素点q(0,0)的颜色被替换为白色。相应地,在操作s240中查找队列初始设置时为q={q(0,0)}。

接着,结合图5a和图5b,对操作s250~操作s270的第一轮循环的具体过程示例说明如下。

首先在操作s250进行判断,此时q={q(0,0)},判断结果是q不为空。

然后进行操作s260的颜色替换操作。具体地,在操作s301中确定q(0,0)为第一轮循环的中心像素点。在操作s302中查找q(0,0)上下左右具有第一颜色的像素点(即,候选像素点)。经过查找,可以发现候选像素点包括q(1,0)、q(-1,0)、q(0,1)、q(0,-1)四个点。在操作s303中将q(1,0)、q(-1,0)、q(0,1)、q(0,-1)的颜色均替换为白色,就可以得到图5b中示意的效果。

接着进行操作s270的更新q的操作。具体地,先在操作s401中从q={q(0,0)}中删除q(0,0),得到临时查找队列q′(此时q′为空)。然后在操作s402中基于操作s302的查找结果可以知道,第一轮循环中存在候选像素点q(1,0)、q(-1,0)、q(0,1)、q(0,-1)。则在操作s403中,将q(1,0)、q(-1,0)、q(0,1)、q(0,-1)添加到q′中,得到更新后的查找队列为q={q(1,0),q(-1,0),q(0,1),q(0,-1)}。至此,操作s250~操作s270的第一轮循环结束。

接下来,在以q={q(1,0),q(-1,0),q(0,1),q(0,-1)}开始进行操作s250~操作s270的第二轮循环。

在第二轮循环中,结合图5b的示意,例如选择q的队列头部元素q(1,0)为中心像素点,则候选像素点为q(1,1),q(1,-1),q(2,0)。第二轮结束后q={q(-1,0),q(0,1),q(0,1),q(1,1),q(1,1),q(2,0)}。

接着以q={q(-1,0),q(0,1),q(0,-1),q(1,1),q(1,-1),q(2,0)},进行操作s250~操作s270的第三轮循环。以此方式,不断循环,直到q中的元素耗尽,q为空时循环终止,此时就可以得到图1b中所示的图片12。通过这种方式,实现了在不同轮次的循环中的中心像素点的连续性转移,并可以将从起始像素点开始、且与起始像素点相链通的区域中的第一颜色替换为白色,从而实现了对图片11的精细抠图。

图6示意性示出了根据本公开实施例的图像处理装置600的方框图。

如图6所示,该图像处理装置600包括获取模块610、颜色确定模块620、起始点替换模块630、队列设置模块640以及循环替换模块650。该装置600可以用于实现参考图2~图5所描述的图像处理方法。

具体地,获取模块610例如可以执行操作s210,用于获取待处理的图像。根据本公开的实施例,获取模块610具体可以用于获取通过canvas渲染到网页的图像。

颜色确定模块620例如可以执行操作s220,用于确定第一颜色和第二颜色,其中第一颜色为图像中需要被替换的颜色,第二颜色为将第一颜色替换后所得的颜色。

起始点替换模块630例如可以执行操作s230,用于将起始像素点的颜色替换为第二颜色,其中起始像素点为图像中颜色为第一颜色的像素点。

队列设置模块640例如可以执行操作s240,用于设置查找队列,其中起始像素点为查找队列初始时的唯一元素。

循环替换模块650例如可以循环执行操作s250~操作s270,用于循环执行替换颜色和更新查找队列的操作,直到查找队列为空时停止循环。

循环替换模块650包括颜色替换子模块651和队列更新子模块652。颜色替换子模块651用于在每一轮循环中将候选像素点的颜色替换为第二颜色,其中候选像素点为本轮循环的中心像素点周围的像素点中颜色为第一颜色的像素点,其中中心像素点为从查找队列的元素中选择确定的。队列更新子模块652用于在每一轮循环中通过从查找队列中移除作为中心像素点的元素、以及将候选像素点添加到查找队列中,来更新查找队列。

根据本公开的实施例,中心像素点周围的像素点包括与中心像素点的边界相接触的全部像素点。

根据本公开的实施例,颜色替换子模块651具体用于在每一轮循环中从查找队列中确定一个元素作为中心像素点(操作s301),查找候选像素点(操作s302),以及在存在候选像素点时,将候选像素点的颜色替换为第二颜色(操作s303)。根据本公开的实施例,从查找队列中确定一个元素作为中心像素点,包括将查找队列中位于队列头部的元素作为中心像素点。

根据本公开的实施例,队列更新子模块652具体用于在每一轮循环中,从查找队列中删除作为中心像素点的元素,得到临时查找队列(操作s401),以及在存在候选像素点时将候选像素点添加到临时查找队列以得到更新后的查找队列(操作s403),或者在不存在候选像素点时,以临时查找队列作为更新后的查找队列(操作s404)。根据本公开的实施例,该将候选像素点添加到临时查找队列,包括将候选像素点添加到临时查找队列的队列末尾。

根据本公开的实施例,装置还包括起始点确定模块660。起始点确定模块660用于基于用户操作确定起始像素点。颜色确定模块620具体用于将与起始像素点的颜色的容差在预设范围内的颜色作为第一颜色。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,获取模块610、颜色确定模块620、起始点替换模块630、队列设置模块640、循环替换模块650、起始点确定模块660、颜色替换子模块651以及队列更新子模块652中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块610、颜色确定模块620、起始点替换模块630、队列设置模块640、循环替换模块650、起始点确定模块660、颜色替换子模块651以及队列更新子模块652中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块610、颜色确定模块620、起始点替换模块630、队列设置模块640、循环替换模块650、起始点确定模块660、颜色替换子模块651以及队列更新子模块652中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图7示意性示出了根据本公开实施例的适于实现图像处理方法的计算机系统700的方框图。图7示出的计算机系统700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图7所示,根据本公开实施例的计算机系统700包括处理器701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在ram703中,存储有系统700操作所需的各种程序和数据。处理器701、rom702以及ram703通过总线704彼此相连。处理器701通过执行rom702和/或ram703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom702和ram703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,系统700还可以包括输入/输出(i/o)接口705,输入/输出(i/o)接口705也连接至总线704。系统700还可以包括连接至i/o接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom702和/或ram703和/或rom702和ram703以外的一个或多个存储器。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

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