图像处理方法和装置与流程

文档序号:12722442阅读:220来源:国知局
图像处理方法和装置与流程

本发明涉及图像处理技术领域,特别涉及一种图像处理方法和装置。



背景技术:

为了美观,终端在显示图像之前,一般会先对图像进行处理,将图像的边角处理为圆角,得到圆角图像,然后显示圆角图像;目前,圆角图像到处可见,例如,终端中已安装的应用程序的图标,即时通信应用程序中用户的头像等,这些图像都是圆角图像。

目前,终端想要将图像处理为圆角图像时,终端获取待处理的图像,在该图像上方确定多个位置点,多个位置点中的相邻两个位置点确定一个线段,得到多个线段,多个线段组成大小与该图像大小匹配且边角为圆角的裁剪区域,读取裁剪区域中的每个像素点的像素值,将该每个像素点的像素值绘制到空白区域,得到圆角图像。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

上述方法是通过多个线段组成裁剪区域,因此裁剪区域有锯齿,经过裁剪后从而导致圆角图像有锯齿,圆角图像不平滑。



技术实现要素:

为了解决现有技术的问题,本发明提供了一种图像处理方法和装置。技术方案如下:

一种图像处理方法,所述方法包括:

获取待处理的图像的每个边角的目标圆角系数;

根据所述每个边角的目标圆角系数,获取所述图像对应的圆角掩图;

根据所述圆角掩图中的每个第一像素点,在所述图像中确定所述每个第一像素点对应的每个第二像素点;

根据所述每个第一像素点的第一图像通道值、所述每个第二像素点的第二 图像通道值和第一像素值,处理所述每个边角,得到所述图像的圆角图像。

优选的,所述根据所述每个边角的目标圆角系数,获取所述图像对应的圆角掩图,包括:

根据所述每个边角的目标圆角系数,确定所述每个边角对应的目标圆角以及容纳所述每个边角对应的目标圆角的矩形区域;

将所述每个边角对应的目标圆角依次连接,得到圆角路径;

根据所述圆角路径和所述矩形区域,生成所述每个边角对应的目标圆角的圆角掩图,得到所述图像对应的圆角掩图。

优选的,所述根据所述每个边角的目标圆角系数,获取所述图像对应的圆角掩图,包括:

将所述每个边角的目标圆角系数组成圆角系数序列;

根据所述圆角系数序列,从圆角系数序列和圆角掩图的对应关系中获取所述图像对应的圆角掩图。

优选的,所述根据所述每个第一像素点的第一图像通道值、所述每个第二像素点的第二图像通道值和第一像素值,处理所述每个边角,得到圆角图像,包括:

根据第二像素点的第二图像通道值和所述第一像素点的第一图像通道值,计算所述第二像素点的第三图像通道值;

根据所述第二像素点的第三图像通道值、第一像素值和第二图像通道值,计算所述第二像素点的第二像素值;

在所述图像中将所述第二像素点的第二图像通道值和第一像素值分别修改为所述第三图像通道值和第二像素值,得到所述图像的圆角图像。

优选的,所述根据所述第二像素点的第三图像通道值、第一像素值和第二图像通道值,计算所述第二像素点的第二像素值,包括:

计算所述第二像素点的第三图像通道值和第一像素值的乘积得到第一数值;

计算所述第一数值与所述第二像素点的第二图像通道值的比值,得到所述第二像素点的第二像素值。

一种图像处理装置,所述装置包括:

第一获取模块,用于获取待处理的图像的每个边角的目标圆角系数;

第二获取模块,用于根据所述每个边角的目标圆角系数,获取所述图像对应的圆角掩图;

确定模块,用于根据所述圆角掩图中的每个第一像素点,在所述图像中确定所述每个第一像素点对应的每个第二像素点;

处理模块,用于根据所述每个第一像素点的第一图像通道值、所述每个第二像素点的第二图像通道值和第一像素值,处理所述每个边角,得到所述图像的圆角图像。

优选的,所述第二获取模块,包括:

确定单元,用于根据所述每个边角的目标圆角系数,确定所述每个边角对应的目标圆角以及容纳所述每个边角对应的目标圆角的矩形区域;

连接单元,用于将所述每个边角对应的目标圆角依次连接,得到圆角路径;

生成单元,用于根据所述圆角路径和所述矩形区域,生成所述每个边角对应的目标圆角的圆角掩图,得到所述图像对应的圆角掩图。

优选的,所述第二获取模块,包括:

组成单元,用于将所述每个边角的目标圆角系数组成圆角系数序列;

获取单元,用于根据所述圆角系数序列,从圆角系数序列和圆角掩图的对应关系中获取所述图像对应的圆角掩图。

优选的,所述处理模块,包括:

第一计算单元,用于根据第二像素点的第二图像通道值和所述第一像素点的第一图像通道值,计算所述第二像素点的第三图像通道值;

第二计算单元,用于根据所述第二像素点的第三图像通道值、第一像素值和第二图像通道值,计算所述第二像素点的第二像素值;

处理单元,用于在所述图像中将所述第二像素点的第二图像通道值和第一像素值分别修改为所述第三图像通道值和第二像素值,得到所述图像的圆角图像。

优选的,所述第二计算单元,包括:

第一计算子单元,用于计算所述第二像素点的第三图像通道值和第一像素值的乘积得到第一数值;

第二计算子单元,用于计算所述第一数值与所述第二像素点的第二图像通 道值的比值,得到所述第二像素点的第二像素值。

在本发明实施例中,获取待处理的图像的每个边角的目标圆角系数;根据每个边角的目标圆角系数,获取该图像对应的圆角掩图;根据圆角掩图中的每个第一像素点,在该图像中确定每个第一像素点对应的每个第二像素点;根据每个第一像素点的第一图像通道值、每个第二像素点的第二图像通道值和第一像素值,处理每个边角,得到圆角图像。本发明实施例中由于圆角掩图没有锯齿,并且本发明中根据圆角掩图中的每个第一像素点的第一图像通道值,处理每个边角,得到的平滑的圆角图像,因此,本发明实施例相比较现有技术的裁剪方法而言不会产生锯齿,从而能够得到平滑的圆角图像。

附图说明

图1是本发明实施例提供的一种图像处理方法流程图;

图2-1是本发明实施例提供的一种图像处理方法流程图;

图2-2是本发明实施例提供的一种待处理图像的示意图;

图2-3是本发明实施例提供的一种圆角路径的示意图;

图2-4是本发明实施例提供的一种圆角掩图的示意图;

图2-5是本发明实施例提供的一种圆角掩图的坐标系的示意图;

图2-6是本发明实施例提供的一种左上圆角的圆角掩图的示意图;

图2-7是本发明实施例提供的一种每个圆角的有效区域的示意图;

图2-8是本发明实施例提供的一种圆角图像的示意图;

图3-1是本发明实施例提供的一种图像处理装置结构示意图;

图3-2是本发明实施例提供的一种第二获取模块的装置结构示意图;

图3-3是本发明实施例提供的另一种第二获取模块的装置结构示意图;

图3-4是本发明实施例提供的一种处理模块的装置结构示意图;

图3-5是本发明实施例提供的一种第二计算单元的装置结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例提供了一种图像处理方法,该方法的执行主体可以为终端或者服务器;参见图1,该方法包括:

步骤101:获取待处理的图像的每个边角的目标圆角系数。

步骤102:根据每个边角的目标圆角系数,获取图像对应的圆角掩图。

步骤103:根据圆角掩图中的每个第一像素点,在该图像中确定每个第一像素点对应的每个第二像素点。

步骤104:根据每个第一像素点的第一图像通道值、每个第二像素点的第二图像通道值和第一像素值,处理每个边角,得到该图像的圆角图像。

在本发明实施例中,获取待处理的图像的每个边角的目标圆角系数;根据每个边角的目标圆角系数,获取该图像对应的圆角掩图;根据圆角掩图中的每个第一像素点,在该图像中确定每个第一像素点对应的每个第二像素点;根据每个第一像素点的第一图像通道值、每个第二像素点的第二图像通道值和第一像素值,处理每个边角,得到该图像的圆角图像。本发明实施例中由于圆角掩图没有锯齿,并且本发明中根据圆角掩图中的每个第一像素点的第一图像通道值,处理每个边角,得到的平滑的圆角图像,因此,本发明实施例相比较现有技术的裁剪方法而言不会产生锯齿,从而能够得到平滑的圆角图像。

本发明实施例提供了一种图像处理方法,该方法的执行主体可以为终端或者服务器;在本发明实施例中,以执行主体为终端为例进行说明。

参见图2-1,该方法包括:

步骤201:获取待处理的图像的每个边角的目标圆角系数。

待处理的图像为直角图像,直角图像是指图像的四个边角都是直角,如图2-2所示;用户可以按照本发明实施例提供的方法将该图像处理为圆角图像,圆角图像是指图像的至少一个边角为圆角的图像,圆角是一个圆的四分之一,也即是一个90度的弧形。

当用户想要将该图像处理为圆角图像时,用户向终端输入该图像的每个边角的目标圆角系数;圆角系数是指圆角的圆角半径;终端获取用户输入的该图像的每个边角的目标圆角系数。

想要说明的是,当边角的目标圆角系数为0时,则该边角为直角。在本发明实施例中,终端可以将图像的一个边角处理为圆角,也可以将图像的多个(2 个、3个或4个)边角处理为圆角。

如果该图像的宽度和高度相等,也即该图像是一个正方形图像,且该图像的四个目标圆角系数都等于该图像的宽度(或高度)的一半,则确定将该图像处理为一个正圆图像。

例如,该图像的四个边角分别为左上边角,右上边角,左下边角和右下边角,且左上边角,右上边角,左下边角和右下边角的目标圆角系数分别为x=20,y=30,z=30,w=20。

需要说明的是,该图像的每个边角的目标圆角系数可以相同,也可以都不同,在本发明实施例中,对每个边角的目标圆角系数不作任何限定。本发明实施例支持任意目标圆角系数的圆角处理。

步骤202:根据每个边角的目标圆角系数,获取该图像对应的圆角掩图。

终端可以在将该图像处理为圆角图像时,根据每个边角的目标圆角系数,生成该图像对应的圆角掩图,也即以下第一种实现方式。由于圆角掩图仅与目标圆角系数有关,与图像无关,因此,多个目标圆角系数相同的多个图像可以共享一个圆角掩图,终端在将图像处理为圆角图像之前,事先生成圆角掩图,存储圆角掩图;在将图像处理为圆角图像时,直接获取已存储的圆角掩图,从而提高处理效率,也即以下第二种实现方式。

对于第一种实现方式,本步骤可以通过以下步骤(1)至(3)实现,包括:

(1):根据每个边角的目标圆角系数,确定每个边角对应的目标圆角以及容纳每个边角对应的目标圆角的矩形区域;

根据每个边角的目标圆角系数,确定容纳每个边角对应的目标圆角的矩形区域的宽度和高度,根据该宽度和高度生成矩形区域。

其中,根据每个边角的目标圆角系数,确定容纳每个边角对应的目标圆角的矩形区域的宽度的步骤可以为:

计算该图像的左上边角的目标圆角系数与右上边角的目标圆角系数的圆角系数和,得到顶部宽度;计算该图像的左下边角的目标圆角系数与右下边角的目标圆角系数的圆角系数和,得到底部宽度;从顶部宽度和底部宽度中选择最大宽度作为容纳每个边角对应的目标圆角的矩形区域的宽度。

其中,根据每个边角的目标圆角系数,确定容纳每个边角对应的目标圆角的矩形区域的高度的步骤可以为:

计算该图像的左上边角的目标圆角系数与左下边角的目标圆角系数的圆角系数和,得到左侧宽度;计算该图像的右上边角的目标圆角系数与右下边角的目标圆角系数的圆角系数和,得到右侧宽度;从左侧宽度和右侧宽度中选择最大高度作为容纳每个边角对应的目标圆角的矩形区域的高度。

例如,用户想要将该图像处理为四个边角均为圆角的圆角图像,则根据每个边角的目标圆角系数,确定每个边角对应的目标圆角分别为:右上角圆角对应圆的0度到90度弧形;右下角圆角对应圆的90度到180度弧形;左下角圆角对应圆的180度至270度弧形;左上角圆角对应圆的270度至360度弧形。

为了便于描述,将左上边角对应的圆角系数称为radius_lefttop,右上边角对应的圆角系数称为radius_righttop,左下边角对应的圆角系数称为radius_leftbottom,右下边角对应的圆角系数称为radius_rightbottom。则容纳每个边角对应的目标圆角的矩形区域的宽度可以为:max((radius_lefttop+radius_righttop),(radius_leftbottom+radius_rightbottom));高度可以为max((radius_lefttop+radius_leftbottom),(radius_righttop+radius_rightbottom));其中,max表示取最大值。

(2):将每个边角对应的目标圆角依次连接,得到圆角路径;

将每个边角对应的目标圆角依次连接,形成一个闭合路径,该闭合路径即为圆角路径。

(3):根据圆角路径和矩形区域,生成每个边角对应的目标圆角的圆角掩图,得到该图像对应的圆角掩图。

将圆角路径放置到矩形区域中,通过预设图像处理软件,将矩形区域中的圆角路径包括的像素点的图像通道值设置为第一预设通道值,得到每个边角对应的目标圆角的圆角掩图。

预设图像处理软件可以为GdiPlus,第一预设通道值为255,矩形区域包括的像素点的图像通道值默认为第二预设通道值,第二预设通道值可以为0;则本步骤可以为:

将圆角路径放置到矩形区域中,利用GdiPlus,将矩形区域中的圆角路径包括的像素点的图像通道值设置为255,将矩形区域中除圆角路径之外的其他区域包括的像素点的图像通道值设置为0,圆角路径和该其他区域之间的交界处的图像通道值是从0渐变到255。

需要说明的是,圆角掩图是一张抗锯齿、带alpha(图像通道值)的图像。因此,通过本发明实施例提供的将图像处理为圆角图像时,可以抗锯齿,得到平滑圆角图像。

例如,依次将左上圆角、右上圆角、左下圆角和右下圆角放置到该矩形区域的四个角落,剩下的未闭合部分使用直线连接所形成的一个闭合路径,也即为圆角路径,如图2-3所示。利用GdiPlus向矩形区域中的圆角路径将矩形区域中的圆角路径包括的像素点的图像通道值设置为255,将矩形区域中除圆角路径之外的其他区域包括的像素点的图像通道值设置为0,得到圆角掩图,如图2-4所示。

由于目标圆角系数相同的多张图像可以共享一张圆角掩图,因此,终端生成圆角掩图之后,将该图像的每个边角的目标圆角系数组成圆角系数序列,建立圆角系数序列和圆角掩图的对应关系,以便于后续将除该图像之外且圆角系数序列与该图像相同的其他图像转换为圆角图像时,可以不用生成该其他图像对应的圆角掩图,直接从圆角系数序列和圆角掩图的对应关系中获取圆角系数序列对应的圆角掩图即可,也即以下第二种实现方式。

对于第二种实现方式,本步骤可以通过以下步骤(A)和(B)实现,包括:

(A):将每个边角的目标圆角系数组成圆角系数序列;

获取预设组合方式,每个边角的目标圆角系数按照该预设组合方式进行组合得到圆角系数序列。

例如,预设组合方式为左上边角-右上边角-左下边角-右下边角;则将左上边角的目标圆角系数,右上边角的目标圆角系数,左下边角的目标圆角系数,右下边角的目标圆角系数组成圆角系数序列。

例如,左上边角的目标圆角系数,右上边角的目标圆角系数,左下边角的目标圆角系数,右下边角的目标圆角系数分别为x=20,y=30,z=30,w=20,则圆角系数序列可以为(20,30,30,20)。

(B):根据圆角系数序列,从圆角系数序列和圆角掩图的对应关系中获取该图像对应的圆角掩图。

步骤203:根据圆角掩图中的每个第一像素点,在该图像中确定每个第一像素点对应的每个第二像素点。

具体地,对于圆角掩图中的每个第一像素点,获取该第一像素点在圆角掩 图中的第一位置,根据第一位置,在该图像中查找第一位置上的像素点,将查找到的像素点确定为在该图像中该第一像素点对应的第二像素点。

例如,以左上边角为例进行说明,左上边角的目标圆角系数x=20,建立如图2-5所示的坐标系,则在该圆角掩图中选择坐标为(0,0)到(20,20)区域中的每个第一像素点,从该图像中确定(0,0)到(20,20)的区域,在确定的区域中确定每个第一像素点对应的每个第二像素点。

例如,图2-6是一个左上圆角的圆角掩图,左上圆角的圆角掩图中的右下侧(虚线右下方)的区域中的第一像素点不需要被处理,则在根据该圆角掩图,将该图像处理为圆角图像时,直接跳过右下侧区域中的第一像素点,只需要处理左上侧区域中的第一像素点即可,也即只需要处理一半的像素点,提高了处理效率。

优选的,则本步骤可以为:

从圆角掩图中确定每个边角对应的目标圆角的有效区域,根据每个边角对应的目标圆角的有效区域中的每个第一像素点,在该图像中确定每个第一像素点对应的每个第二像素点。

需要说明的是,左上圆角的有效区域可以为左上圆角的左上侧区域,右上圆角的有效区域可以为右上圆角的右上侧区域,左下圆角的有效区域可以为左下侧区域,右下圆角的有效区域可以为右下侧区域,参见图2-7。

为了进一步地提高处理效率,在本步骤中也可以仅对圆角掩图中位于圆角路径以外的像素点进行处理,则本步骤可以为:

从圆角掩图中确定位于圆角路径以外的每个第一像素点,在该图像中确定每个第一像素点对应的每个第二像素点。

步骤204:根据第二像素点的第二图像通道值和第一像素点的第一图像通道值,计算第二像素点的第三图像通道值。

计算第二像素点的第二图像通道值和第二像素点对应的第一像素点的第一图像通道值的乘积,得到第二数值,计算第二数值与第一预设通道值的比值,得到第二像素点的第三图像通道值。

例如,第二像素点的第二图像通道值为aOrigin,第二像素点对应的第一像素点的第一图像通道值为a,则第二像素点的第三图像通道值为aNew=(aOrigin*a)/255。

对于每个第二像素点都按照以上方法计算每个第二像素点的第三图像通道值。

步骤205:根据第二像素点的第三图像通道值、第一像素值和第二图像通道值,计算第二像素点的第二像素值。

具体地,计算第二像素点的第三图像通道值和第一像素值的乘积得到第一数值;计算第一数值与第二像素点的第二图像通道值的比值,得到第二像素点的第二像素值。

由于像素值是由r(red红)值,g(green,绿)值和b(blue,蓝)值组成的,则在本步骤可以为:

根据第二像素点的第三图像通道值、第一像素值包括的第一r值、和第二图像通道值,计算第二像素点的第二像素值包括的第二r值;根据第二像素点的第三图像通道值,第一像素值包括的第一g值和第二图像通道值,计算第二像素点的第二像素值包括的第二g值;根据第二像素点的第三图像通道值,第一像素值包括的第一b值和第二图像通道值,计算第二像素点的第二像素值包括的第二b值。

例如,第一像素值包括的第一r值为rOrigin,第一g值为gOrigin,第一b值为bOrigin;第二像素值包括的第二r值为rNew,第二g值为gNew,第二b值为bNew,则rNew=(rOrigin*aNew)/aOrigin;gNw=(gOrigin*aNew)/aOrigin;bNew=(bOrigin*aNew)/aOrigin。

步骤206:在该图像中将第二像素点的第二图像通道值和第一像素值分别修改为第三图像通道值和第二像素值,得到该图像的圆角图像。

在该图像中将第二像素点的第二图像通道值修改为第二像素点的第三图像通道值,将第二像素点的第一像素值修改为第二像素点的第二像素值,得到该图像的圆角图像。

对于该图像中的每个第二像素点,在该图像中将每个第二像素点的第二图像通道值修改为其对应的第三图像通道值,将第一像素值修改为其对应的第二像素值,得到该图像的圆角图像,参见图2-8所示。

本发明通过处理每个边角的像素值和图像通道值,实现将图像处理为圆角图像,从而可实现图像的平滑效果。

在本发明实施例中,获取待处理的图像的每个边角的目标圆角系数;根据 每个边角的目标圆角系数,获取该图像对应的圆角掩图;根据圆角掩图中的每个第一像素点,在该图像中确定每个第一像素点对应的每个第二像素点;根据每个第一像素点的第一图像通道值、每个第二像素点的第二图像通道值和第一像素值,处理每个边角,得到圆角图像。本发明实施例中由于圆角掩图没有锯齿,并且本发明中根据圆角掩图中的每个第一像素点的第一图像通道值,处理每个边角,得到的平滑的圆角图像,因此,本发明实施例相比较现有技术的裁剪方法而言不会产生锯齿,从而能够得到平滑的圆角图像。

本发明实施例提供了一种图像处理的装置,该装置用于执行实施例1和实施例2中的图像处理方法,参见图3-1,该装置包括:

第一获取模块301,用于获取待处理的图像的每个边角的目标圆角系数;

第二获取模块302,用于根据每个边角的目标圆角系数,获取该图像对应的圆角掩图;

确定模块303,用于根据圆角掩图中的每个第一像素点,在该图像中确定每个第一像素点对应的每个第二像素点;

处理模块304,用于根据每个第一像素点的第一图像通道值、每个第二像素点的第二图像通道值和第一像素值,处理每个边角,得到该图像的圆角图像。

优选的,参见图3-2,第二获取模块302,包括:

确定单元3021,用于根据每个边角的目标圆角系数,确定每个边角对应的目标圆角以及容纳每个边角对应的目标圆角的矩形区域;

连接单元3022,用于将每个边角对应的目标圆角依次连接,得到圆角路径;

生成单元3023,用于根据圆角路径和矩形区域,生成每个边角对应的目标圆角的圆角掩图,得到该图像对应的圆角掩图。

优选的,参见图3-3,第二获取模块302,包括:

组成单元3024,用于将每个边角的目标圆角系数组成圆角系数序列;

获取单元3025,用于根据圆角系数序列,从圆角系数序列和圆角掩图的对应关系中获取该图像对应的圆角掩图。

优选的,参见图3-4,处理模块304,包括:

第一计算单元3041,用于根据第二像素点的第二图像通道值和第一像素点的第一图像通道值,计算第二像素点的第三图像通道值;

第二计算单元3042,用于根据第二像素点的第三图像通道值、第一像素值和第二图像通道值,计算第二像素点的第二像素值;

处理单元3043,用于在该图像中将第二像素点的第二图像通道值和第一像素值分别修改为第三图像通道值和第二像素值,得到该图像的圆角图像。

优选的,参见图3-5,第二计算单元3042,包括:

第一计算子单元30421,用于计算第二像素点的第三图像通道值和第一像素值的乘积得到第一数值;

第二计算子单元30422,用于计算第一数值与第二像素点的第二图像通道值的比值,得到第二像素点的第二像素值。

在本发明实施例中,获取待处理的图像的每个边角的目标圆角系数;根据每个边角的目标圆角系数,获取该图像对应的圆角掩图;根据圆角掩图中的每个第一像素点,在该图像中确定每个第一像素点对应的每个第二像素点;根据每个第一像素点的第一图像通道值、每个第二像素点的第二图像通道值和第一像素值,处理每个边角,得到圆角图像。本发明实施例中由于圆角掩图没有锯齿,并且本发明中根据圆角掩图中的每个第一像素点的第一图像通道值,处理每个边角,得到的平滑的圆角图像,因此,本发明实施例相比较现有技术的裁剪方法而言不会产生锯齿,从而能够得到平滑的圆角图像。

需要说明的是:上述实施例提供的图像处理装置在图像处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图像处理装置与图像处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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