• 这位少侠我看你百会穴发绿啊


    https://github.com/mlxy/FacePlusPlusDemo

    一个超良心的人脸识别接口,完全免费,开发者版给三个并发,个人用足够。

    开发者中心里建个应用就可以用了。

    官网在这:http://www.faceplusplus.com.cn/

    API简洁易懂,有两个概念。

    一个是人(Person),一个是脸(Face)。

    还有人群Group和脸集合FaceSet。

    Demo用到了人脸识别接口Detect,用Post方式提交图片数据或者Get提交图片URL都行,结果包括年龄、性别、是否戴眼镜和眼镜类型、人种和笑容值,还包括误差和可信度。

    还用到了相似度比对接口Verify,返回两张脸的相似度。不过提交的是脸的ID,所以需要先行识别两张脸获取返回的FaceID。

    只识别不保存到人(Person)的脸(Face)只给保存72小时,如果不需要保存只做一次性识别的话无所谓。

    Demo的界面就很简单了,用了一个图片选择器来选照片,然后调用系统相机拍照,只上传一个或两个都上传,最后简单显示结果。

    选择照片:

    用隐式意图开一个文件选择器,Action用自带的图片类型。

    Intent intent = new Intent("android.intent.action.PICK", MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(intent, 2);

    返回的结果是一个URI,用网上找到的工具类转成具体路径。

    public static String getRealFilePath(final Context context, final Uri uri) {
        if (null == uri)
            return null;
        final String scheme = uri.getScheme();
        String data = null;
        if (scheme == null)
            data = uri.getPath();
        else if (ContentResolver.SCHEME_FILE.equals(scheme)) {
            data = uri.getPath();
        } else if (ContentResolver.SCHEME_CONTENT.equals(scheme)) {
            Cursor cursor = context.getContentResolver().query(uri, new String[] { ImageColumns.DATA }, null, null, null);
            if (null != cursor) {
                if (cursor.moveToFirst()) {
                    int index = cursor.getColumnIndex(ImageColumns.DATA);
                    if (index > -1) {
                        data = cursor.getString(index);
                    }
                }
                cursor.close();
            }
        }
        return data;
    }

    把图片解码出来。

    BitmapFactory.decodeFile(path);

    压缩成字节数组上传就行了。

    public byte[] bitmap2Bytes(Bitmap bm) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
        return baos.toByteArray();
    }

    拍照的Action用这个

    MediaStore.ACTION_IMAGE_CAPTURE

    返回的结果键名是data,内容就是Bitmap,强转一下就行了。

  • 相关阅读:
    线性代数复习向量空间线性相关向量组的秩
    证明:将n(n为2的幂)个点的位反转环划分为长为j(2的幂)的连续片段,这些片段都是次序等价的(分布式算法)
    vim命令小合集
    poj2240floyd算法
    visual studio打开文件所在目录
    5个0,4个1组成的字符串中,出现01或10的次数为4的不同字符串个数
    max spacing kclustering(类似kruskal最小生成树)并查集Debuging
    算法导论16.35huffman树的表示
    最优二叉查找树optimalBSTC++实现2
    算法导论16.37
  • 原文地址:https://www.cnblogs.com/chihane/p/4493841.html
Copyright © 2020-2023  润新知