如何在Android中实现一个裁剪人脸类
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"如何在Android中实现一个裁剪人脸类"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"如何在Android中实现一个裁剪人脸类"文章能帮助大
千家信息网最后更新 2026年11月03日如何在Android中实现一个裁剪人脸类
这篇文章主要介绍"如何在Android中实现一个裁剪人脸类"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"如何在Android中实现一个裁剪人脸类"文章能帮助大家解决问题。
人脸裁剪类
public final class FaceCj { 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 facePaths; private static String facePath; public static Bitmap cutFace(Bitmap bitmap, Context context) { facePaths = null; BitmapFactoryOptionsbfo = new BitmapFactory.Options(); BitmapFactoryOptionsbfo.inPreferredConfig = Bitmap.Config.RGB_565; // 构造位图生成的参数,必须为565。类名+enum out = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 50, out); data = out.toByteArray(); bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, BitmapFactoryOptionsbfo); try { out.flush(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.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(); 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 { return Bitmap.createBitmap(bitmap, tx, ty, bx - tx, by - ty);//这里可以自行调整裁剪宽高 } catch (Exception e) { e.printStackTrace(); } } bitmap.recycle(); return bitmap; }} 关于"如何在Android中实现一个裁剪人脸类"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
人脸
中实
知识
参数
行业
不同
实用
中心点
位图
内容
右边
实例
实用性
实际
数组
文章
方法
更多
案例
画框
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
伟宏互联网科技
广州百单互联网科技有限公司
科技与互联网
互联网通讯科技
远信互联网科技
壹账通互联网科技
深圳天众互联网科技公司
互联网金融科技委员会
中国的互联网科技企业的崛起
华服互联网科技官网
东莞新华互联网科技学校
华夏恒生科技与互联网科技
互联网科技创新的路径
合肥互联网科技公司公章图片
小米互联网科技园入驻
互联网与数字科技关系
九思连强互联网电子科技有限公司
唯美互联网科技
盐城市攀科互联网科技有限公司
小牛互联网科技有限公司地址
互联网络科技有限公司
智慧科技互联网
互联网科技有限公司 翻译
山东吉时兔互联网科技有限公司
阿里巴巴算科技企业还是互联网
互联网和黑科技的看法
互联网为啥属于高科技
搜狐科技互联网
互联网保险科技创业
深圳互联网科技的发展