概述
-
@Auther: DarkKing
-
@Date: 2019/10/2 11:06
-
@Description:
*/
public class DetectFace {
//定义程序的基础路径
private String basePath =System.getProperty(“user.dir”);
//人眼识别分类器路径
private String eyeConfigPath=basePath+"srccomfacedetectconfighaarcascade_eye_tree_eyeglasses.xml";
//人脸识别分类器路径
private String faceConfigPath=basePath+"srccomfacedetectconfighaarcascade_frontalface_alt2.xml";
static{
// 载入opencv的库
String opencvpath = System.getProperty(“user.dir”) + “libsx64”;
String opencvDllName = opencvpath + Core.NATIVE_LIBRARY_NAME + “.dll”;
System.load(opencvDllName);
}
/**
-
opencv实现人脸识别
-
@param imagePath
-
@param outFile
-
@throws Exception
*/
public void detectFace(String imagePath, String outFile) throws Exception
{
System.out.println("Running DetectFace …,config path is "+faceConfigPath);
String basePath =System.getProperty(“user.dir”);
String path= basePath+ “srccomfacedetecttmp”;
// 从配置文件lbpcascade_frontalface.xml中创建一个人脸识别器,该文件位于opencv安装目录中,为了方便从安装方便放到了程序路径里
CascadeClassifier faceDetector = new CascadeClassifier(faceConfigPath);
//创建图片处理对象
Mat image = Imgcodecs.imread(imagePath);
// 在图片中检测人脸
MatOfRect faceDetections = new MatOfRect();
//多条件结果检测
faceDetector.detectMultiScale(image, faceDetections);
System.out.println(String.format(“Detected %s faces”, faceDetections.toArray().length));
//检测结果集
Rect[] rects = faceDetections.toArray();
// 在每一个识别出来的人脸周围画出一个方框
for (int i = 0; i < rects.length; i++) {
Rect rect = rects[i];
Imgproc.rectangle(image, new Point(rect.x-2, rect.y-2),
new Point(rect.x + rect.width, rect.y + rect.height),
new Scalar(0, 255, 0));
Mat copy = new Mat(image,rect);
Mat temp = new Mat();
copy.copyTo(temp);
//输出图片
Imgcodecs.imwrite(path+i+".png", temp);
}
Imgcodecs.imwrite(outFile, image
最后
以上就是粗暴月饼为你收集整理的Java实现人脸检测,java线程教程的全部内容,希望文章能够帮你解决Java实现人脸检测,java线程教程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复