当前位置: 首页 > news >正文

opencv-platform实现人脸识别

和同事接触了下甲方,对方算是一个资源整合的自由人,手里有项目,然后认识些开发就聊下有什么事情可以做的,对方聊了下做人脸签到,或者说人脸打开。就这方面我做了下简单的了解。做了个java小demo。

我们常用的人脸识别的摄像头屏幕就是一个简单的图片视频提供的工具,人脸识别的实现都是后台的实现。

java中有个opencv-platform封装好的包,简单的引入项目然后通过下面的代码就能清晰的圈出图片中的人脸

package com.gzl.opence;import org.bytedeco.javacpp.Loader;
import org.bytedeco.opencv.global.opencv_core;
import org.bytedeco.opencv.global.opencv_imgcodecs;
import org.bytedeco.opencv.global.opencv_imgproc;
import org.bytedeco.opencv.opencv_core.*;
import org.bytedeco.opencv.opencv_objdetect.CascadeClassifier;public class OpencvApplication {static {Loader.load(opencv_core.class);}public static void main(String[] args) {// 读取图像String filePath = "F:\\GAO\\Desktop/person1.jpg";Mat image = opencv_imgcodecs.imread(filePath);if (image.empty()) {System.out.println("图像加载失败!");return;}// 转换为灰度图像Mat grayImage = new Mat();opencv_imgproc.cvtColor(image, grayImage, opencv_imgproc.COLOR_BGR2GRAY);// 加载人脸分类器String xmlFile = "E:\\study\\gzl_base\\gzl_opencv\\gzl_opencv_server\\src\\main\\resources/haarcascade_frontalface_alt.xml";CascadeClassifier faceDetector = new CascadeClassifier(xmlFile);// 检测人脸RectVector faceDetections = new RectVector();faceDetector.detectMultiScale(grayImage, faceDetections);System.out.println(String.format("检测到 %s 张人脸", faceDetections.size()));// 在图像上绘制人脸矩形for (int i = 0; i < faceDetections.size(); i++) {Rect rect = faceDetections.get(i);opencv_imgproc.rectangle(image, new Point(rect.x(), rect.y()),new Point(rect.x() + rect.width(), rect.y() + rect.height()),new Scalar(0, 255, 0, 0));}// 保存处理后的图像String outputFilePath = "output.jpg";opencv_imgcodecs.imwrite(outputFilePath, image);System.out.println("处理后的图像已保存:" + outputFilePath);}
}

上面的代码是实现了 图片中识别到人。如果做人脸签到还需要做些其他的操作。后续更新


http://www.mrgr.cn/news/59870.html

相关文章:

  • 选择嵌入模型
  • 前端处理API接口故障:多接口自动切换的实现方案
  • 对传输质量评价体系的评价
  • Linux基础-基础命令和相关知识4
  • Java毕业设计项目-ssm图书管理系统
  • 博客搭建之路:hexo增加搜索功能
  • 二十三、Python基础语法(包)
  • Upload-labs通关
  • Python 从入门到实战41(NumPy数值计算)
  • kNN 的花式用法(原来还能这么玩 kNN)
  • Java NIO 应知应会 (一)
  • FFmpeg 4.3 音视频-多路H265监控录放C++开发六,使用SDLVSQT显示yuv文件
  • UE ---- 射击游戏
  • 【Linux网络】传输层协议UDP与TCP
  • Mochi 1:AI视频生成领域的创新与应用
  • 绝了,这款播放器让发烧友疯狂种草,堪称音乐神器
  • 从零入门扣子Bot开发
  • Map和Set(数据结构)
  • 网络学习/复习2套接字
  • Linux基础-基础命令和相关知识4
  • 实现mysql和es的数据同步以及es的集群
  • 刷c语言练习题13(牛客网)
  • 【数据结构与算法】《Java 算法宝典:探秘从排序到回溯的奇妙世界》
  • 银河麒麟V10系统下libopenblas.so.0和libllmlmf库的安装
  • QT 实现自定义动态选择指示器
  • GPU的使用寿命可能只有1~3年