Java OpenCV 图形图像 人脸识别

1 如果没有部署好Java+OpenCV-4.0.0请查看。
2 Eclipse+OpenCV环境搭建
3 Intellij Idea+OpenCV环境搭建
4 如果你的图片中的人脸识别成功,你可以试一下调用笔记本的摄像头试一下实时人脸识别。实时人脸识别(摄像头/视频人脸识别)

package com.xu.opencv;

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.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;

/**
 * @Title: FaceDetect.java
 * @Description: OpenCV-4.0.0 测试文件
 * @Package com.xu.test
 * @author: xuhyacinth
 * @date: 2019年5月7日12:13:13
 * @version: V-1.0.0
 * @Copyright: 2019 xuhyacinth
 */
public class FaceDetect {

    static {
        //在使用OpenCV前必须加载Core.NATIVE_LIBRARY_NAME类,否则会报错
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }

    public static void main(String[] args) {
        face();
    }

    /**
     * OpenCV-4.0.0 人脸识别
     *
     * @return: void
     * @date: 2019年5月7日12:16:55
     */
    public static void face() {
        // 1 读取OpenCV自带的人脸识别特征XML文件
        //OpenCV 图像识别库一般位于 opencv\sources\data 下面
        CascadeClassifier facebook = new CascadeClassifier("D:\\OpenCV\\opencv-4.0.0\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml");
        // 2 读取测试图片
        Mat image = Imgcodecs.imread("C:\\Users\\Administrator\\Pictures\\99.png");
        // 3 特征匹配
        MatOfRect face = new MatOfRect();
        facebook.detectMultiScale(image, face);
        // 4 匹配 Rect 矩阵 数组
        Rect[] rects = face.toArray();
        System.out.println("匹配到 " + rects.length + " 个人脸");
        // 5 为每张识别到的人脸画一个圈
        for (int i = 0; i < rects.length; i++) {
            Imgproc.rectangle(image, new Point(rects[i].x, rects[i].y), new Point(rects[i].x + rects[i].width, rects[i].y + rects[i].height), new Scalar(0, 0, 255));
            Imgproc.putText(image, "Human", new Point(rects[i].x, rects[i].y), Imgproc.FONT_HERSHEY_SCRIPT_SIMPLEX, 1.0, new Scalar(0, 255, 0), 1, Imgproc.LINE_AA, false);
        }
        // 6 展示图片
        HighGui.imshow("人脸识别", image);
        HighGui.waitKey(0);
    }

}

在这里插入图片描述

更多推荐