资源简介

人脸识别检测opencv简单java实现要不是毕业好几年我都不舍得分享出来!!! CTRL+D收藏一下或者关注走一波-有你所需!不断更新! 其他相关下载,配套代码以及PPT。稳妥的小老弟 https://me.csdn.net/download/qq_27500493 加载本地的OpenCV库,这样就可以用它来调用Java API。 创建实例CascadeClassifier,将已加载的分类器的文件名传递给它。 接下来我们将图片转化成Java API能够接受使用Highui类的格式,铺垫在OpenCV C++的n维密集数组类上边。 然后,调用分类器上的detectMultiScale方法传递给它图象和MatOfRect对象。这个过程之后,MatOfRect将有面部检测。 我们遍历所有的脸部检测并用矩形标记图像。 最后,将图像写入输出的 .png 文件里。 --------------------- 作者:your-Mr-Right 来源:CSDN 原文:https://blog.csdn.net/qq_27500493/article/details/78065312 版权声明:本文为博主原创文章,转载请附上博文链接!

资源截图

代码片段和文件信息

package com.njupt.zhb.test;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.highgui.Highgui;
import org.opencv.objdetect.CascadeClassifier;

//
// Detects faces in an image draws boxes around them and writes the results
// to “faceDetection.png“.
//
public class DetectFaceDemo {
  public void run() {
    System.out.println(“\nRunning DetectFaceDemo“);
    System.out.println(getClass().getResource(“lbpcascade_frontalface.xml“).getPath());
    // Create a face detector from the cascade file in the resources复杂背景下,alt_tree和LBP的检测结果都是一致的,但是LBP的用时要短很多,因此LBP相对来说实时性更强。
    // directory.
    //CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource(“lbpcascade_frontalface.xml“).getPath());
    //Mat image = Highgui.imread(getClass().getResource(“lena.png“).getPath());
    //注意:源程序的路径会多打印一个‘/’,因此总是出现如下错误
/*
 * Detected 0 faces Writing faceDetection.png libpng warning: Image
 * width is zero in IHDR libpng warning: Image height is zero in IHDR
 * libpng error: Invalid IHDR data
 */
    //因此,我们将第一个字符去掉
    String xmlfilePath=getClass().getResource(“lbpcascade_frontalface.xml“).getPath().substring(1);
    CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);//从配置文件lbpcascade_frontalface.xml中创建一个人脸识别器;创建实例CascadeClassifier,将已加载的分类器的文件名传递给它。
    Mat image = Highgui.imread(getClass().getResource(“we.jpg“).getPath().substring(1));
    // Detect faces in the image.
    // MatOfRect is a special container class for Rect.
    MatOfRect faceDetections = new MatOfRect();
    faceDetector.detectMultiScale(image faceDetections);//调用分类器上的detectMultiScale方法传递给它图象和MatOfRect对象。这个过程之后,MatOfRect将有面部检测。

    System.out.println(String.format(“Detected %s faces“ faceDetections.toArray().length));

    // Draw a bounding box around each face.
    for (Rect rect : faceDetections.toArray()) {
        Core.rectangle(image new Point(rect.x rect.y) new Point(rect.x + rect.width rect.y + rect.height) new Scalar(0 255 0));
    }

    // Save the visualized detection.
    String filename = “faceDetection.png“;
    System.out.println(String.format(“Writing %s“ filename));
    Highgui.imwrite(filename image);
  }
}

/*加载本地的OpenCV库,这样就可以用它来调用Java API。
创建实例CascadeClassifier,将已加载的分类器的文件名传递给它。
接下来我们将图片转化成Java API能够接受使用Highui类的格式,铺垫在OpenCV C++的n维密集数组类上边。
然后,调用分类器上的detectMultiScale方法传递给它图象和MatOfRect对象。这个过程之后,MatOfRect将有面部检测。
我们遍历所有的脸部检测并用矩形标记图像。
最后,将图像写入输出的 .png 文件里。*/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         755  2018-11-19 23:21  说明一下吧.txt
     文件         570  2017-06-24 11:00  .classpath
     文件         389  2017-06-24 10:58  .project
     目录           0  2017-06-24 10:58  .settings\
     文件         598  2017-06-24 10:58  .settings\org.eclipse.jdt.core.prefs
     目录           0  2017-06-25 11:14  bin\
     目录           0  2017-06-25 11:14  bin\com\
     目录           0  2017-06-25 11:14  bin\com\njupt\
     目录           0  2017-06-25 11:14  bin\com\njupt\zhb\
     目录           0  2017-06-25 11:14  bin\com\njupt\zhb\test\
     文件      510332  2017-06-24 14:43  bin\com\njupt\zhb\test\33.jpg
     文件        2443  2017-06-25 11:14  bin\com\njupt\zhb\test\DetectFaceDemo.class
     文件         694  2017-06-25 11:14  bin\com\njupt\zhb\test\TestMain.class
     文件       51856  2017-06-24 10:59  bin\com\njupt\zhb\test\lbpcascade_frontalface.xml
     文件      620636  2017-06-24 10:59  bin\com\njupt\zhb\test\lena.png
     文件       25922  2017-06-24 11:02  bin\com\njupt\zhb\test\timg.jpg
     文件      138070  2017-06-24 10:59  bin\com\njupt\zhb\test\we.jpg
     文件     1007175  2017-06-25 11:14  faceDetection.png
     目录           0  2017-06-24 10:59  libs\
     文件      430303  2017-06-24 10:59  libs\opencv-246.jar
     目录           0  2017-06-24 10:59  libs\x64\
     文件     8606208  2017-06-24 10:59  libs\x64\opencv_java246.dll
     目录           0  2017-06-24 10:59  libs\x86\
     文件     7426048  2017-06-24 10:59  libs\x86\opencv_java246.dll
     目录           0  2017-06-24 14:44  src\
     目录           0  2017-06-24 10:59  src\com\
     目录           0  2017-06-24 10:59  src\com\njupt\
     目录           0  2017-06-24 10:59  src\com\njupt\zhb\
     目录           0  2017-06-24 14:44  src\com\njupt\zhb\test\
     文件      510332  2017-06-24 14:43  src\com\njupt\zhb\test\33.jpg
     文件        2927  2017-06-24 20:58  src\com\njupt\zhb\test\DetectFaceDemo.java
............此处省略5个文件信息

评论

共有 条评论

相关资源