人脸识别--opencv-java代码实现
时间: 2023-10-20 11:07:26 浏览: 161
以下是使用OpenCV库实现的Java人脸识别代码:
```java
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.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
public class FaceDetection {
public void run() {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// 加载人脸检测器
CascadeClassifier faceDetector = new CascadeClassifier("haarcascade_frontalface_alt.xml");
// 加载图像
Mat image = Imgcodecs.imread("test.jpg");
// 检测人脸
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);
// 绘制人脸框
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));
}
// 保存结果
Imgcodecs.imwrite("result.jpg", image);
}
public static void main(String[] args) {
new FaceDetection().run();
}
}
```
其中,需要注意以下几点:
1. 需要先加载OpenCV库,使用`System.loadLibrary(Core.NATIVE_LIBRARY_NAME)`进行加载;
2. 需要加载人脸检测器的xml文件,例如这里使用的是`haarcascade_frontalface_alt.xml`;
3. 使用`CascadeClassifier`类进行人脸检测;
4. 对于检测到的人脸,使用`Imgproc.rectangle`方法在原图上绘制矩形框。
阅读全文