/idPicCut

对原始证件照进行压缩,剪裁,换背景,(美颜)

Primary LanguageJava

安装

直接用eclipse导入就ok了,里面引用了两个jiar包,如果运行出错需要自己重新修改下路径 ,放在lib文件夹下。

说明

主要是使用了openCV和thumbnailator-的jar包,原本的openVC为c++开发。

人脸剪裁

主要的思路为,通过人脸识别来找到人脸的位置,不过存在着一定的错误率,一站图片会识别出多个人脸,因为是证件照,所以只要找到其中的最大的人脸就行了, 找到人脸后按照一定的比例进行剪裁得到一定大小的证件照。

换底色

把图片分为左右两侧,事先确定底色的RGB范围。边缘检测方法,对每一个像素进行判断,符合颜色范围的就进行颜色替换,同时设置5个像素误差,意思为,当出现5个像素以上的颜色判别不在底色范围内时候意味着已经到达边缘,然后进行中断,继续重复操作。

磨皮

使用了网上的一个数学公式

Dest =(Src * (100 - Opacity) + (Src + 2 * GuassBlur(EPFFilter(Src) - Src + 128) - 256) * Opacity) /100

这是根据ps方法总结得到的,当然也可以根据其他ps人脸美化的方法总结得到公式然后用语言来操作。缺点就是没有确定人脸的范围,只是全局进行磨皮,包括衣服。

ps:在美图秀秀上提供美颜的sdk,根据官方的demo感觉效果还不错,有空再加进去。

其他的压缩,修改尺寸的功能使用了

存在的问题 提示信息不能实时打印到界面上 存在线程抢占问题