java集成opencv人脸识别

本文档详细介绍了如何下载、安装OpenCV,并在SpringBoot项目中配置环境变量,通过添加依赖并设置参数来实现人脸识别功能。通过读取XML分类器文件,检测图像中的脸部,然后绘制矩形框标记出人脸,并保存识别后的图像。
摘要由CSDN通过智能技术生成

一、下载,https://opencv.org/releases/

二、安装

三、配置环境变量

1、新建OPENCV_HOME

2、添加path

三、新建springboot项目,jdk选择8

1、pom添加依赖

        <dependency>
            <groupId>org</groupId>
            <artifactId>opencv</artifactId>
            <version>4.5.1</version>
        </dependency>

2、Edit Configuration,添加 -Djava.library.path=D:\Dev\opencv\opencv\build\java\x64

3、代码,新建FaceDetectTest测试类

package com.example.demo;

import org.junit.jupiter.api.Test;
import org.opencv.core.*;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class FaceDetectTest {

    @Test
    void contextLoads() {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        // Create a face detector from the cascade file in the resources
        //分类器文档地址
        CascadeClassifier faceDetector = new CascadeClassifier("D:\\Dev\\opencv\\opencv\\sources\\data\\lbpcascades\\lbpcascade_frontalface.xml");
        if(faceDetector.empty()){
            System.out.println("读取配置文件失败");
            return;
        }
        //识别的文档地址
        Mat image = Imgcodecs.imread("D:\\face.png");
        // Detect faces in the image.
        // MatOfRect is a special container class for Rect.
        MatOfRect faceDetections = new MatOfRect();
        faceDetector.detectMultiScale(image, faceDetections);
        System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));
        // Draw a bounding box around each face.
        for (Rect rect : faceDetections.toArray()) {
            Imgproc.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));
        }
        //识别后文档地址
        String filename = "D:\\faceDetection.png";
        System.out.println(String.format("Writing %s", filename));
        Imgcodecs.imwrite(filename, image);
    }

}

四、结果对比

1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xinqing5130

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值