人脸裁剪 人脸识别图片裁剪 多人脸裁剪
最近用到人脸识别技术,有个需求是多人脸图片的时候需要一个一个把人脸裁剪出来,以便获取人脸的图片,从而用其获取单人脸的特征:效果如如:(有链接demo)
https://download.csdn.net/download/qq_38355313/10438863
裁剪前
裁剪后
上班时间关系,不多做解释,直接贴代码
private static BitmapFactory.Options BitmapFactoryOptionsbfo;private static ByteArrayOutputStream out;private static byte[] data;private static FaceDetector.Face[] myFace;private static FaceDetector myFaceDetect;private static int tx = 0;private static int ty = 0;private static int bx = 0;private static int by = 0;private static int width = 0;private static int height = 0;private static float wuchax = 0;private static float wuchay = 0;private static FaceDetector.Face face;private static PointF myMidPoint;private static float myEyesDistance;private static List<String> facePaths;private static String facePath;public static List<String> cutFace(Bitmap bitmap, Context context) {facePaths = null;BitmapFactoryOptionsbfo = new BitmapFactory.Options();BitmapFactoryOptionsbfo.inPreferredConfig = Bitmap.Config.RGB_565; // 构造位图生成的参数,必须为565。类名+enumout = new ByteArrayOutputStream();bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);data = out.toByteArray();bitmap = BitmapFactory.decodeByteArray(data, 0, data.length,BitmapFactoryOptionsbfo);try {out.flush();out.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}width = bitmap.getWidth();height = bitmap.getHeight();myFace = new FaceDetector.Face[5]; // 分配人脸数组空间myFaceDetect = new FaceDetector(bitmap.getWidth(), bitmap.getHeight(), 5);int numberOfFaceDetected = myFaceDetect.findFaces(bitmap, myFace);if (numberOfFaceDetected <= 0) {// FaceDetector构造实例并解析人脸bitmap.recycle();return null;}facePaths = new ArrayList<String>();for (int i = 0; i < numberOfFaceDetected; i++) {face = myFace[i];myMidPoint = new PointF();face.getMidPoint(myMidPoint);myEyesDistance = face.eyesDistance(); //得到人脸中心点和眼间距离参数,并对每个人脸进行画框wuchax = myEyesDistance / 2 + myEyesDistance;wuchay = myEyesDistance * 2 / 3 + myEyesDistance;if (myMidPoint.x - wuchax < 0) {//判断左边是否出界tx = 0;} else {tx = (int) (myMidPoint.x - wuchax);}if (myMidPoint.x + wuchax > width) {//判断右边是否出界bx = width;} else {bx = (int) (myMidPoint.x + wuchax);}if (myMidPoint.y - wuchay < 0) {//判断上边是否出界ty = 0;} else {ty = (int) (myMidPoint.y - wuchay);}if (myMidPoint.y + wuchay > height) {//判断下边是否出界by = height;} else {by = (int) (myMidPoint.y + wuchay);}try {facePath = saveBitmapN(Bitmap.createBitmap(bitmap, tx, ty, bx - tx, by - ty));} catch (Exception e) {e.printStackTrace();facePath = null;}if (facePath != null) {facePaths.add(facePath);}}bitmap.recycle();return facePaths;}
下载链接
https://download.csdn.net/download/qq_38355313/10438863
人脸裁剪 人脸识别图片裁剪 多人脸裁剪相关推荐
- html5裁剪后的图片不显示怎么办,裁剪后的图片不显示??
按照老师在React Native Android原生模块开发实战中裁剪图片的例子来写的: render() { let imgUrl =Platform.OS==='android'? 'file: ...
- 测一测!中科视拓免费开放口罩人脸检测与识别技术
全民抗疫形势下,口罩已成为复工复产的标配.对于人脸识别技术厂商而言,两个应用需求应运而生: 1.检测人脸是否佩戴口罩: 2.在戴口罩的情况下依旧能够实现高精度人脸识别. 疫情初期,中科视拓紧急研发口罩 ...
- 一文搞懂人脸识别那点事---人脸识别方案summary
The Summary Of Face Recognition [全文共计7162字,预计阅读15分钟,消耗脑容量20MB] 人脸识别包含人脸检测.人脸对齐.人脸识别三个步骤. 首先利用人脸检测(Fa ...
- mtcnn人脸检测python_基于mtcnn和facenet的实时人脸检测与识别系统开发
简介:本文主要介绍了实时人脸检测与识别系统的详细方法.该系统基于python/opencv2/tensorflow环境,实现了从摄像头读取视频,检测人脸,识别人脸的功能.本系统代码地址:real ti ...
- 人脸验证与识别——从模型训练到项目部署
前言 1.人脸验证其实是人脸识别中的一种,人脸验证要做的是1对1的验证,算法的验证模式是对当前人脸与另一张人脸做比对,然后给出得分值,可以按得分值来证明可以当前的人脸是否与另一给脸匹配上.这种使用最多 ...
- PCA人脸识别GUI(ORL+Yale人脸库)
该系统为基于MATLAB平台的PCA的人脸识别系统,可识别ORL和YALE人脸库,方法实现统一,包括GUI界面.另外可二次开发成摄像头的实时人脸系统,识别出库外人脸,可做成门禁系统,考勤系统,打卡签到 ...
- Java + opencv 实现人脸识别,图片人脸识别、视频人脸识别、摄像头实时人脸识别
搭建环境 opencv官网下载windows安装包 https://opencv.org/releases/ 选择最新版4.1.1 下载完成后是一个opencv-4.1.1-vc14_vc15.exe ...
- 使用OpenCV-python识别图片视频中的人脸和眼睛
文章目录 思路和核心代码 识别图像中的人脸 识别视频中的人脸和眼睛 思路和核心代码 思路如下: 首先需要一个训练好的人脸和眼睛特征数据库,用于识别人脸和眼睛 识别出人脸和眼睛之后,返回所在的区域(一般 ...
- Python人脸识别图片视频
人脸识别技术发展现状及未来趋势 当前,随着人工智能.物联网等前沿技术的迅速发展,智能时代已悄然到来,"刷脸"逐渐成为了新的风潮.在人脸识别技术商业化应用领域不断扩张的趋势下,&qu ...
- 基于BP神经网络算法的实现静态图片和视频人脸识别、性别识别
资源下载地址:https://download.csdn.net/download/sheziqiong/85772066 资源下载地址:https://download.csdn.net/downl ...
最新文章
- Spring 系列,第 2 部分: 当 Hibernate 遇上 Spring
- 删除vsftp虚拟用户脚本
- 【java基础】map的基本使用与字符串中每个字符出现的次数统计
- 平台信赖度成为双十一影响消费者购买决策的重要因素
- 2021.02.18 Visual QA论文阅读
- 知乎用户行为预测数据比赛,10万奖金等你来Battle!
- ListView的分页显示
- Java基础学习总结(42)——Log4j 2使用教程
- python使用ffmpeg截取视频段
- @ConfigurationProperties + @EnableConfigurationProperties
- 一次性获取多个oracle序列的值,实现关联表多数据的批量insert
- java synchronized块_Java多线程同步代码块Synchronized
- [转]Qt 之 QFileSystemWatcher
- 正则化与数据先验分布的关系
- 织梦域名后缀.html,织梦cms建站教程之首页域名后缀index.html去除的方法
- 一IT项目经理的总结
- 神经网络Neural Networks概述
- 美国依靠美元霸权, 是如何收割世界财富的?
- 什么是大数据开发?看完我终于懂了......
- “大多数人,都死在了 30 岁”