一、下载,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