OpenCv 进行人脸识别非常简单,它已经提供了模型,直接调用该模型进行匹配即可
打开摄像头获取帧数据-->对帧数据进行模型匹配-->匹配通过就对目标画框框
听起来十分简单,确实十分简单,难主要在配置上出现问题繁琐,需要源代码请直接跳转第三步
伪代码:
- public static void Video(){
- // 加载匹配模型
- // "C:\\Users\\kk\\IdeaProjects\\open-demo 需要改成当前本地项目地址
- CascadeClassifier faceCascade = new CascadeClassifier("C:\\Users\\kk\\IdeaProjects\\open-demo\\haarcascades\\haarcascade_frontalface_default.xml");
- // 打开摄像头
- VideoCapture videoCapture = new VideoCapture(0);
-
- while (true) {
- Mat frame = new Mat();
- // 读取帧图像
- videoCapture.read(frame);
-
- // 将图像转为灰度图
- Mat gray = new Mat();
- Imgproc.cvtColor(frame, gray, Imgproc.COLOR_BGR2GRAY);
-
- // 检测人脸
- MatOfRect faces = new MatOfRect();
- faceCascade.detectMultiScale(gray, faces);
-
- // 在检测到的人脸周围画矩形框
- for (Rect rect : faces.toArray()) {
- Imgproc.rectangle(frame, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0), 2);
- }
-
- // 显示图像
- HighGui.imshow("Frame", frame);
-
- // 按下q键退出循环
- if (HighGui.waitKey(1) == 'q') {
- break;
- }
- }
-
- // 释放摄像头
- videoCapture.release();
- // 关闭窗口
- HighGui.destroyAllWindows();
- }
已经提供了完整项目,具体说明请查看项目的 HELP.md 文件
gitee地址:OpenCv项目构建: OpenCv项目构建,OpenCv4.8.0+Springboot
如果觉得有用请点个赞 ^_^