资源简介
人脸识别检测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.xm
文件 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个文件信息
评论
共有 条评论