Android opencv人脸识别

Android opencv人脸识别opencv人脸识别Androidopencv人脸识别图片:![在这里插入图片描述](https://img-blog.csdnimg.cn/2019012214185895.png//开始人脸检测publicvoidstart(){n_Start();}//停止人脸检测publicvoidstop(){n_Stop();}//设…

大家好,又见面了,我是你们的朋友全栈君。

opencv人脸识别

Android opencv人脸识别

下载地址:https://github.com/baoyu45585/OpenCVDemo

detectMultiScale函数
  选择最终的人脸分类器后,若想在这个基础上继续优化,那就试试这个detectMultiScale函数。具体可以查看Opencv源码,下面给出这个函数的讲解:

void detectMultiScale(
const Mat& image,
CV_OUT vector

& objects,

double scaleFactor = 1.1,

int minNeighbors = 3,

int flags = 0,

Size minSize = Size(),

Size maxSize = Size()

);

函数介绍:

参数1:image–待检测图片,一般为灰度图像加快检测速度;

参数2:objects–被检测物体的矩形框向量组;

参数3:scaleFactor–表示在前后两次相继的扫描中,搜索窗口的比例系数。默认为1.1即每次搜索窗口依次扩大10%;

参数4:minNeighbors–表示构成检测目标的相邻矩形的最小个数(默认为3个)。 如果组成检测目标的小矩形的个数和小于 min_neighbors – 1 都会被排除。如果min_neighbors 为 0, 则函数不做任何操作就返回所有的被检候选矩形框;

参数5:flags–要么使用默认值,要么使用CV_HAAR_DO_CANNY_PRUNING,函数将会使用Canny边缘检测来排除边缘过多或过少的区域, 因为这些区域通常不会是人脸所在区域;

参数6、7:minSize和maxSize用来限制得到的目标区域的范围。如果视频中误检到很多无用的小方框,那么就把minSize的尺寸改大一些,默认的为30*30。

图片: ![在这里插入图片描述](https://img-blog.csdnimg.cn/2019012214185895.png在这里插入图片描述

分别测试下面的文件效果比较好的是alt文件
在这里插入图片描述

public class NDKUtils {

private CascadeClassifier mJavaDetector;
private static final String TAG = "FaceDetectActivity";
static {
    System.loadLibrary("native-lib");
}


// 构造方法:初始化人脸检测引擎
public NDKUtils(String cascadeName,int minFaceSize) {
    if (cascadeName!=null){
        // 使用模型文件初始化人脸检测引擎
        mJavaDetector = new CascadeClassifier(cascadeName);
        if (mJavaDetector.empty()) {
            Log.e(TAG, "加载cascade classifier失败");
            mJavaDetector = null;
        } else {
            Log.d(TAG, "Loaded cascade classifier from " + cascadeName);
        }
        n_CreateObject(cascadeName,minFaceSize);
    }
}
public NDKUtils() {

}


public CascadeClassifier getmJavaDetector() {
    return mJavaDetector;
}


// 开始人脸检测
public void start() {

    n_Start();
}

// 停止人脸检测
public void stop() {
    n_Stop();
}

// 设置人脸最小尺寸
public void setMinFaceSize(int size) {

    n_SetFaceSize(size);
}

// 检测人脸
public void detect(Mat imageGray, MatOfRect faces) {

    n_Detect(imageGray.getNativeObjAddr(), faces.getNativeObjAddr());
}

// 检测人脸
public void detect(byte[] buf, int w, int h,MatOfRect faces) {

    n_Detect(buf, w, h,faces.getNativeObjAddr());
}

// 释放资源
public void release() {
    n_DestroyObject();
}


public  native int[] n_gray(int[] buf, int w, int h);

private  native void n_CreateObject(String cascadeName, int minFaceSize);
private  native void n_DestroyObject();
private  native void n_Start();
private  native void n_Stop();
private  native void n_SetFaceSize( int size);
private  native void n_Detect(long inputImage, long faces);
private  native void n_Detect(byte[] buf, int w, int h, long faces);

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133938.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ajax练手小案例

    Ajax练手小案例一、Ajax介绍1、Ajax不是一项具体的技术,而是几门技术的综合应用。Javascript、XHTML和CSS、DOM、XML和XMLHttpRequest。2、Ajax核心只不过是要在javascript中调用一个叫XMLHttpRequest类,这个类可以与Web服务器使用HTTP协议进行交互,程序不通过浏览器发出请求,而是用这个特殊的JavaScript对象发送请求和接收…

    2022年6月13日
    20
  • 电视处理器a53和a55哪个厉害(cortexa55处理器好吗)

    小编语:手机处理器从32位向64位的迁移过程中,功耗增加以及给手机厂商带来的散热成为一个很大的问题。目前Cortex-A57已经是64位手机处理器芯片的主流内核,它的功耗不降下来,更多手机功能的开发可能受限于系统总功耗而无法实现,ARM这次推出的Cortex-A35显然在这方面下了不少功夫,究竟能给手机厂商带来多少实惠,还要等终端产品推出后才见分晓……64位元处理器应用版图…

    2022年4月13日
    750
  • 2.6 低音谱F谱表[通俗易懂]

    2.6 低音谱F谱表[通俗易懂]2.6 低音谱F谱表七音唱名倒念:tilasolfamiredo需要记。达到阅读五线谱像阅读文字那样。

    2022年8月5日
    4
  • html爱心表白代码(最全)

    html爱心表白代码(最全)代码1:<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><title>跳动爱心</title><style>*{padding:0;margin:0;}body{background-c

    2022年6月13日
    33
  • 批处理文件for循环_批处理循环语句

    批处理文件for循环_批处理循环语句命令格式:for{%variable|%%variable}in(集合)docommand[options]%variable|%%variable:代表可替换参数。使用%variable通过命令提示符执行for命令。使用%%variable在批处理文件中执行for命令;这个变量可以是26个英文字母任意一个,也可以是其他;这些变量会区分大小写,%%x和%%X代表

    2022年10月12日
    4
  • 150套JSP源码–免费下载

    150套JSP源码–免费下载150套JSP源码免费下载适用于学习百度云下载地址:链接:https://pan.baidu.com/s/1J7-O9k6o8f5dFh71VzCpuA提取码:zb7p如下载地址失效请私信作者

    2022年6月16日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号