一种表情图片生成方法及装置与流程

文档序号:12123797阅读:380来源:国知局
一种表情图片生成方法及装置与流程

本发明实施方式涉及信息技术领域,特别是涉及一种表情图片生成方法及装置。



背景技术:

表情包是在社交软件活跃之后,形成的一种流行文化。在移动互联网时期,人们以时下流行的明星、语录、动漫、影视截图为素材,配上一系列相匹配的文字,用以表达特定的情感。

然而,在实现本发明实施例的过程中,发明人发现相关技术至少存在以下问题:现有技术在制作表情图片的时候,一般采用将从网络上获取图片,利用图片处理软件与获取的其他图片进行合成。需要通过图片处理软件对图片进行较为细致的处理以达到做出表情表的效果。这种方法需要操作人对图片处理软件使用成熟而且处理步骤较多,处理时间太长。使用成本高。



技术实现要素:

本发明实施方式提供一种表情图片生成方法及装置,能够快速地制作出表情包,使用成本低。

为解决上述技术问题,本发明实施方式采用的一个技术方案是:提供一种表情图片生成方法,包括:

获取脸部图片;

对所述获取的脸部图片进行脸部特征提取,并形成脸部特征图片;

将所述脸部特征图片生成表情图片。

其中,所述对所述获取的脸部图片进行脸部特征提取,并形成脸部特征图片包括:

将脸部图片转换为二进制数据,在转换形成的二进制数据中识别并提取人脸轮廓和/或五官特征对应的二进制数据,根据提取的人脸轮廓和/或五官特征的二进制数据确定整个人脸的二进制数据,将整个人脸的二进制数据转换形成脸部特征图片;所述二进制数据包括:Mat数据。

其中,所述将脸部图片转换为二进制数据,在转换形成的二进制数据中识别并提取人脸轮廓和/或五官特征的二进制数据,接着将提取的二进制数据转换形成脸部特征图片包括:

通过调用Native方法对由脸部图片转换形成的Mat数据进行人脸轮廓和/或五官特征Mat数据的检测识别,而后确定人脸轮廓和/或五官特征的Mat数据在脸部图片形成的Mat数据中所在的位置,根据提取的人脸轮廓和/或五官特征的Mat数据确定整个人脸的Mat数据,根据所述整个人脸的Mat数据得到一个Rect数组。

其中,所述将所述脸部特征图片生成表情图片进一步包括:

将所述脸部特征图片进行置灰处理;

对所述置灰处理后的脸部特征图片与底版图片进行合成;

将所述合成后的图片进行保存。

其中,对所述置灰处理后的脸部特征图片与底版图片进行合成包括:对合成后的图片进行脸部调整,对脸部特征图片与底版图片结合的部分进行擦除。

为解决上述技术问题,本发明实施方式采用的另一个技术方案是:提供一种表情图片制作装置,包括:

图片获取模块,用于获取脸部图片;

特征提取模块,用于对所述获取的图片进行脸部特征提取,并形成脸部特征图片;

表情图片生成模块,将所述脸部特征图片制作生成表情图片。

其中,所述特征提取模块进一步用于:

将脸部图片转换为二进制数据,在转换形成的二进制数据中识别并提取人脸轮廓和/或五官特征对应的二进制数据,根据提取的人脸轮廓和/或五官特征的二进制数据确定整个人脸的二进制数据,将整个人脸的二进制数据转换形成脸部特征图片;所述二进制数据包括:Mat数据。

其中,特征提取模块进一步用于:

通过调用Native方法对由脸部图片转换形成的Mat数据进行人脸轮廓和/或五官特征Mat数据的检测识别,而后确定人脸轮廓和/或五官特征的Mat数据在脸部图片形成的Mat数据中所在的位置,根据提取的人脸轮廓和/或五官特征的Mat数据确定整个人脸的Mat数据,根据所述整个人脸的Mat数据得到一个Rect数组。

其中,表情图片生成模块进一步包括置灰模块:用于将所述脸部特征图片进行置灰处理;

合成模块:用于对所述置灰处理后的脸部特征图片与底版图片进行合成;

保存模块:用于将所述合成后的图片进行保存。

其中,合成模块还用于:

对所述置灰处理后的脸部特征图片与底版图片进行合成包括:对合成后的图片进行脸部调整,对脸部特征图片与底版图片结合的部分进行擦除。

本发明实施方式的有益效果是:区别于现有技术的情况,本发明实施方式的一种表情图片生成方法及装置能够本实施方式的表情图片生成方法能够将快速地提取到的脸部特征图片,将脸部特征图片保存为表情图片,能够快速地实现表情图片的制作,做出符合当下流行趋势的表情图片,使用门槛低。

附图说明

图1是本发明第一实施例提供的一种表情图片生成方法的流程图;

图2是实本发明施例一所述方法步骤13的流程图;

图3是本发明第二实施例提供的一种表情图片制作装置的结构图;

图4是本发明实施例提供的电子设备的结构图。

具体实施方式

实施例一

参阅图1,本发明的第一实施例,提供一种表情图片生成方法,包括:

步骤101:获取脸部图片;

所述获取的图片为包含有人脸的图片。

所述获取脸部的照片包括:通过摄像头进行拍照获得人脸照片,或者从本地存储器或者服务器中获得现有的包含人脸的图片。

步骤102:对所述获取的脸部图片进行脸部特征提取,并形成脸部特征图片;

所述对所述获取的图片进行脸部特征提取,并形成脸部特征图片包括:

对获取的图片中的人脸轮廓和/或五官特征进行识别,识别后将包含所述人脸轮廓和/或五官特征的部分提取出来,形成脸部特征图片。具体包括:将脸部图片转换为二进制数据,在转换形成的二进制数据中识别并提取人脸轮廓和/或五官特征的二进制数据,根据提取的人脸轮廓和/或五官特征的二进制数据确定整个人脸的二进制数据,接着将整个人脸的二进制数据转换形成脸部特征图片。所述二进制数据包括:Mat数据。

在上述方法中,使用的是opencv的库,在opencv的库中对图像进行处理。所述OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Mac OS或Android操作系统上。它轻量级而且高效由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

进一步的,使用Android系统层面上的opencv库进行处理。先将图片格式转化为Mat数据。Opencv通过调用Native方法对由图片转换形成的Mat数据进行脸部数据的检测,主要通过对脸部轮廓数据和/或五官特征的数据进行识别,识别出来后,根据识别出来的所述脸部轮廓数据和/或五官特征的数据确定整个人脸的Mat数据在整张图片形成的Mat数据中所在的位置,对整个人脸的Mat数据进行定位,确定整张图片形成的Mat数据中的整个人脸Mat数据,得到一个包含整个人脸数Mat据Rect数组。

步骤103:将所述脸部特征图片生成表情图片。

所述将所述脸部特征图片生成表情图片包括:将上述得到的包含人脸数据的Rect数组的数据转换形成图片,所述图片的格式包括以下任意一种:bitmap、jepg、jpg、tiff、gif、pcx、tga等。接着将形成的图片按照对应的图片格式进行保存,形成表情图片。

区别于现有技术,本实施方式的表情图片生成方法能够将快速地提取到的脸部特征图片,将脸部特征图片保存为表情图片,能够快速地实现表情图片的制作,做出符合当下流行趋势的表情图片,使用门槛低。

参阅图2,上述步骤103进一步包括:

步骤1031:将所述脸部特征图片进行置灰处理;

在检测到人脸特征以后,需把人脸的部分截取出来,然后置灰。根据图片Mat数据以及脸部特征图片的Rect数组把检测到的脸部特征图片的数据自定义大小后保存成文件,形成对应图片格式的脸部特征图片,所述图片格式包括以下任意一种:bitmap、jepg、jpg、tiff、gif、pcx、tga等。获得保存形成的对应格式的脸部特征图片,接着通过opencv的库中的ColorMatrix方法对图片进行置灰处理,ColorMatrix通过调用setSaturation(0)函数后使用paint.setColorFilter函数,最后用drawBitmap方法可将图片进行置灰处理。

进一步的,可对灰度进行调整。置灰处理后的脸部特征图片不符合要求时,对灰度值进行调整,以形成满足需要的灰度。所述灰度包括0%至100%的亮度值,所述0%的亮度值为接近于白色的亮度值,所述100%的亮度值为接近于黑色的亮度值。

步骤1032:对所述置灰处理后的脸部特征图片与底版图片进行合成;

可对置灰的脸部特征图片在底版图片上进行移动。所述底版图片为能够与脸部特征图片合成形成表情图片的图片。示例的,底版图片可以为包含空着人脸的人的身体的图片。接着通过继承Android系统里面的OnTouchListener方法以及重写onTouch方法,对脸部特征图片及底版图片进行处理,通过改变脸部特征图片的坐标和页面布局的数值不断对脸部特征图片在底版图片上进行移动调整。确定脸部特征图片在底版图片上的位置后,用Canvas将空白表情包作为画布,将脸部特征图片做为画,用调用Andorid系统里的drawBitmap方法对两张图片进行合成。合成后的图片用户可进行脸部调整,对脸部特征图片与底版图片结合的部分进行擦除,如擦除脸部一些多余部分。具体包括:将合成后形成的图片作为画布,用白色作为颜色,并通过确定的坐标值,对画布上的对应位置涂上白色,形成擦除效果。可选的,还可涂上除了白色以外的其他颜色。擦除结束后用调用drawBitmap方法对图片进行合成。

步骤1033:将所述合成后的图片进行保存。

最后得出的图片将形成图片格式后进行保存。保存过程通过在系统里面新建文件,并调用FileOutputStream方法,对图片进行压缩保存为图片格式,所述图片格式包括以下任意一种:bitmap、jepg、jpg、tiff、gif、pcx、tga。

区别于现有技术,本实施方式的表情图片生成方法能够将提取到的脸部特征图片进行置灰处理后,将置灰处理后的图片与底版图片合成形成表情图片,能够快速地实现表情图片的制作,做出符合当下流行趋势的表情图片,使用门槛低。

实施例二

参阅图3,本发明第三实施例,提供一种表情图片制作装置,包括:

图片获取模块301:用于获取脸部的图片。

所述获取的图片为包含有人脸的图片。

所述获取脸部的照片包括:通过摄像头进行拍照获得人脸照片,或者从本地存储器或者服务器中获得现有的包含人脸的图片。

特征提取模块302:用于对所述获取的图片进行脸部特征提取,并形成脸部特征图片;

特征提取模块302进一步用于,对获取的图片中的人脸轮廓和/或五官特征进行识别,识别后将包含所述人脸轮廓和/或五官特征的部分提取出来,形成脸部特征图片。具体包括:将脸部图片转换为二进制数据,在转换形成的二进制数据中识别并提取人脸轮廓和/或五官特征的二进制数据,根据提取的人脸轮廓和/或五官特征的二进制数据确定整个人脸的二进制数据,接着将整个人脸的二进制数据转换形成脸部特征图片。所述二进制数据包括:Mat数据。

在上述装置中,使用的是opencv的库,在opencv的库中对图像进行处理。所述OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Mac OS或Android操作系统上。它轻量级而且高效由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

进一步的,使用Android系统层面上的opencv库进行处理。先将图片格式转化为Mat数据。Opencv通过调用Native方法对由图片转换形成的Mat数据进行脸部数据的检测,主要通过对脸部轮廓数据和/或五官特征的数据进行识别,识别出来后,根据识别出来的所述脸部轮廓数据和/或五官特征的数据确定整个人脸的Mat数据在整张图片形成的Mat数据中所在的位置,对整个人脸的Mat数据进行定位,确定整张图片形成的Mat数据中的整个人脸Mat数据,得到一个包含整个人脸数Mat据Rect数组。

表情图片生成模块303:将所述脸部特征图片制作生成表情图片。

将上述得到的包含人脸数据的Rect数组的数据转换形成图片格式,所述图片格式包括以下任意一种:bitmap、jepg、jpg、tiff、gif、pcx、tga等。接着将形成的图片格式对应的图片进行保存,形成表情图片。

其中,表情图片生成模块303进一步包括置灰模块3031:用于将所述脸部特征图片进行置灰处理;

在检测到人脸特征以后,需把人脸的部分截取出来,然后置灰。置灰模块3031根据图片Mat数据以及脸部特征图片的Rect数组把检测到的脸部特征图片的数据自定义大小后保存成文件,形成对应图片格式的脸部特征图片,所述图片格式包括以下任意一种:bitmap、jepg、jpg、tiff、gif、pcx、tga等。获得保存形成的对应格式的脸部特征图片,接着通过opencv的库中的ColorMatrix方法对图片进行置灰处理,ColorMatrix通过调用setSaturation(0)函数后使用paint.setColorFilter函数,最后用drawBitmap方法可将图片进行置灰处理。

进一步的,置灰模块3031还用于对灰度进行调整。置灰处理后的脸部特征图片不符合要求时,对灰度值进行调整,以形成满足需要的灰度。所述灰度包括0%至100%的亮度值,所述0%的亮度值为接近于白色的亮度值,所述100%的亮度值为接近于黑色的亮度值。

合成模块3032:用于对所述置灰处理后的脸部特征图片与底版图片进行合成。

可对置灰的脸部特征图片在底版图片上进行移动。所述底版图片为能够与脸部特征图片合成形成表情图片的图片。示例的,底版图片可以为包含空着人脸的人的身体的图片。合成模块3031通过通过继承Android系统里面的OnTouchListener方法以及重写onTouch方法,对脸部特征图片及底版图片进行处理,通过改变脸部特征图片的坐标和页面布局的数值不断对脸部特征图片在底版图片上进行移动调整。确定脸部特征图片在底版图片上的位置后,用Canvas将空白表情包作为画布,将脸部特征图片做为画,用调用Andorid系统里的drawBitmap方法对两张图片进行合成。合成后的图片用户可进行脸部调整,对脸部特征图片与底版图片结合的部分进行擦除,如擦除脸部一些多余部分。具体包括:将合成后形成的图片作为画布,用白色作为颜色,并通过确定的坐标值,对画布上的对应位置涂上白色,形成擦除效果。擦除结束后用调用drawBitmap方法对图片进行合成。

保存模块3033:用于将所述合成后的图片进行保存。

保存模块3033将最后得出的图片将形成图片格式后进行保存。保存模块3033通过在系统里面新建文件,并调用FileOutputStream方法,对图片进行压缩保存为图片格式,所述图片格式包括以下任意一种:bitmap、jepg、jpg、tiff、gif、pcx、tga。

区别于现有技术,本实施方式的表情图片生成方法能够将提取到的脸部特征图片进行置灰处理后,将置灰处理后的图片与底版图片合成形成表情图片,能够快速地实现表情图片的制作,做出符合当下流行趋势的表情图片,使用门槛低。

实施例三

图4是本申请实施例提供的表情图片生成方法的电子设备400的硬件结构示意图,如图4所示,该电子设备400包括:

一个或多个处理器410以及存储器420,图4中以一个处理器410为例。

处理器410和存储器420可以通过总线或者其他方式连接,图4中以通过总线连接为例。

存储器420作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的表情图片生成方法对应的程序指令/模块(例如,附图3所示的图片获取模块301、特征提取模块302、表情图片生成模块303)。处理器410通过运行存储在存储器420中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及数据处理,即实现上述方法实施例表情图片生成方法。

存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据表情图片制作装置的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至表情图片制作装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个模块存储在所述存储器420中,当被所述一个或者多个处理器410执行时,执行上述任意方法实施例中的表情图片生成方法,例如,执行以上描述的图1中的方法步骤101至步骤103,图2中的方法步骤1031至步骤1032,图3中的模块301-303、模块3031-3033的功能。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本申请实施例的电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子装置。

本申请实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图4中的一个处理器410,可使得上述一个或多个处理器可执行上述任意方法实施例中的表情图片生成方法,例如,执行以上描述的图1中的方法步骤101至步骤103,图2中的方法步骤1031至步骤1032,图3中的模块301-303、模块3031-3033的功能。

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

通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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