首先当然是需要安装opencv了,我用的是opencv2.4.13。下载完之后就可以直接安装了,安装过程也很简单,直接下一步下一步就好,我就不上图了。

接下来在opencv下找到jar包,比如我直接安装在c盘,我的jar包在C:\opencv\build\java中。

然后将jar包拷贝到lib目录中,并且在idea中配置

接着在opencv的路径下找到lbpcascade_frontalface.xml。比如我的就是C:\opencv\sources\data\lbpcascades。然后将其拷贝到src目录下。

这样该有的环境就已经搭建好了,就可以开始写代码了。

直接上代码

    public static void main(String[] args) {// Load the native library.System.loadLibrary(Core.NATIVE_LIBRARY_NAME);String url ="G:\\web\\uploadPicture\\src\\main\\resources\\assets\\4.jpg";new DetectFaceDemo().go(url,"G:\\1.jpg");}

  

  

    public void go(String srcFileName,String newPath) {Mat image = null;CascadeClassifier faceDetector = null;String xmlfilePath = DetectFaceDemo.class.getClassLoader().getResource("lbpcascade_frontalface.xml").getPath().substring(1);try {faceDetector = new CascadeClassifier(xmlfilePath);image = Highgui.imread(srcFileName);}catch (Exception e){e.printStackTrace();}// 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()) {Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));}//         Save the visualized detection.System.out.println(String.format("Writing %s", newPath));Highgui.imwrite(newPath, image);}

  这样你就可以直接运行呢,但是会报错。

这时你可以打开edit,如图

修改vm option -Djava.library.path=C:\opencv\build\java\x64

接着再运行就可以了。

如果要部署到服务器上的话opencv的jar包一定要放在lib下,我之前在lib下新建了个文件夹吧jar包放在里面,一直报classnotfound的异常。

然后在tomcat的vm options中添加路径即可

但是这样有个致命的问题,他必须是一个文件路径,opencv没有提供对于流处理的封装,这不符合java的思想,也不满足项目的需求,尤其是现在许多的图片都是base64位的流。所以这又需要用stormcv这个jar包了了,再次感谢Apache。

这样我们就可以把识别的函数改为。

public void run(String imgStr) {BASE64Decoder decoder = new BASE64Decoder();Mat image = null;CascadeClassifier faceDetector = null;String xmlfilePath = DetectFaceDemo.class.getClassLoader().getResource("lbpcascade_frontalface.xml").getPath().substring(1);try {faceDetector = new CascadeClassifier(xmlfilePath);byte[] b = decoder.decodeBuffer(imgStr); //将base64位流解码为二进制文件image = ImageUtils.bytes2Mat(b);      //将二进制文件转化为mat}catch (Exception e){e.printStackTrace();}// 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));
}

  

  好了,大功告成

转载于:https://www.cnblogs.com/cgy96/p/6236244.html

java+opencv+intellij idea实现人脸识别相关推荐

  1. Java+OpenCV实现图片中的人脸识别

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 C++ 类 ...

  2. java opencv人脸识别_java+opencv+intellij idea实现人脸识别

    首先当然是需要安装opencv了,我用的是opencv2.4.13.下载完之后就可以直接安装了,安装过程也很简单,直接下一步下一步就好,我就不上图了. 接下来在opencv下找到jar包,比如我直接安 ...

  3. java学生管理系统(百度人脸识别 + Swing + mysql + 邮件发送 )

    文章目录 项目感受 项目历程和功能概述 具体实现 增删改查 音乐播放 背景更换 邮件发送 人脸识别 百度AI注册 人脸识别相关类的使用 单个参数的提取 使用opencv调用摄像头录入人脸 其他问题 总 ...

  4. java调用face_【AI】Java+Fileupload+JSTL+Face++实现人脸识别系统

    原标题:[AI]Java+Fileupload+JSTL+Face++实现人脸识别系统 一.前言 人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延 ...

  5. JAVA 调用摄像头 拍照 实现人脸识别

    JAVA 调用摄像头 拍照 实现人脸识别 今天想试试百度的api 实现一下近年的热点,人脸识别,虽然咱不会,百度会呀,还免费给我无限用呀. 注册百度云账号等:略. Java中调用摄像头,网上搜到两种方 ...

  6. python读取视频流做人脸识别_基于OpenCV和Keras实现人脸识别系列——二、使用OpenCV通过摄像头捕获实时视频并探测人脸、准备人脸数据...

    基于OpenCV和Keras实现人脸识别系列手记: 项目完整代码参见Github仓库. 本篇是上面这一系列手记的第二篇. 在Opencv初接触,图片的基本操作这篇手记中,我介绍了一些图片的基本操作,而 ...

  7. 深度学习之基于opencv和CNN实现人脸识别

    这个项目在之前人工智能课设上做过,但是当时是划水用的别人的.最近自己实现了一下,基本功能可以实现,但是效果并不是很好.容易出现错误识别,或者更改了背景之后识别效果变差的现象.个人以为是数据选取的问题, ...

  8. Java后端 + 百度SDK实现人脸识别

    Java后端 + 百度SDK实现人脸识别 人工智能越来越贴近我们的生活,相信大家也经常接触到人脸识别,手机付款.app注册验证.门禁等等. 如果要用Java后台使用这些功能,那么需要怎么做呢?请看完下 ...

  9. 3d人脸识别算法opencv_用Opencv打造自己的人脸识别

    # 用Opencv打造自己的人脸识别 标签: opencv 人脸识别在现在使用的越来越多,所以使用opencv构造一个简单的人脸识别.步骤包括收集及处理数据,构建人脸识别器,进行人脸识别. 收集数据 ...

最新文章

  1. css如何做玻璃效果_拓展训练之后的效果保持工作该如何做?
  2. IslandViewer4|基因组岛在线预测
  3. MathJax: 让前端支持数学公式
  4. C# DateTimePicker控件如何精确设置显示时分秒
  5. 左神算法:判断 t1 树中是否有与 t2 树拓扑结构完全相同的子树(Java版)
  6. System message SM02
  7. sql重新注册服务器,sql server无法新建注册服务器怎么办?
  8. Java中的工厂方法模式
  9. 线程---生产者消费者问题
  10. 第一小节 初识面向对象
  11. ​北京大学 2022 年博士研究生招生简章
  12. 127.0.0.1 myz.php,附录 – 1.0升级到2.0注意事项 - GatewayWorker 2.x 3.x 手册
  13. 解决 Command “python setup.py egg_info“ failed with error code 1 问题
  14. oracle没有正常启动,Oracledbstart无法正常启动处理办法
  15. Android Baseline小tip
  16. 用Java打印棱形的思路,java打印菱形思路
  17. 19. 正则表达式(二)
  18. ResultSet获取记录条数
  19. 听完计算机知识讲座后感悟,计算机技能培训心得感想
  20. 百度竞价的五个基本特征!

热门文章

  1. linux脚本怎么发送到桌面,如何在Linux上使用Zenity创建简单的图形Shell脚本
  2. 2021 ICPC Asia Jinan Regional Contest-J Determinant(取模高斯消元)
  3. Dungeon Master 地下城大师(BFS进阶)
  4. php数据入库流程,php数据库操作
  5. 持久化存储技术之SharedPreferences存储
  6. Penn Treebank Tags做点小翻译 (下篇)
  7. 基于Nginx的Wesocket负载均衡
  8. QT Creator 环境使用 remote debug 调试 arm 程序
  9. android:EditText属性/去边框
  10. VS2010: Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ChangesetComments 未注冊