首先当然是需要安装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));

}

好了,大功告成

原文:http://www.cnblogs.com/cgy96/p/6236244.html

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

  1. java 人脸检测_Java+OpenCV实现人脸检测并自动拍照

    java+opencv实现人脸检测,调用笔记本摄像头实时抓拍,人脸会用红色边框标识出来,并且将抓拍的目录存放在src下,图片名称是时间戳. 环境配置:win7 64位,jdk1.8 CameraBas ...

  2. java百度实时人脸检测_Java对接百度智能云人脸识别

    --------------------->这篇文章就是自己做个笔记<-------------------- ----- 看到SDK其实就不需要看我这篇文章了,哈哈哈 ok,先找到人脸识 ...

  3. java opencv 开发环境_Java + opencv学习:在Eclipse下配置基于Java的OpenCV开发环境

    最近研究OpenCV想用java进行开发,因此研究了一下怎么在Eclipse中配置基于java的Opencv. 第一步:先到OpenCV官网下载你想要的版本,假设使用的是2.4.6版本.这里附上下载地 ...

  4. java图片镜像代码_Java OpenCV实现图像镜像翻转效果

    本文实例为大家分享了Java OpenCV实现图像镜像翻转效果的具体代码,供大家参考,具体内容如下 主要使用OpenCV的flip()方法,可以实现图像的垂直.水平以及同时垂直镜像翻转. flip是C ...

  5. java 人脸检测_Java+opencv3.2.0实现人脸检测功能

    说到人脸检测,首先要了解Haar特征分类器.Haar特征分类器说白了就是一个个的xml文件,不同的xml里面描述人体各个部位的特征值,比如人脸.眼睛等等.OpenCV3.2.0中提供了如下特征文件: ...

  6. 人脸识别系统OpenCV+dlib+python(含数据库)Pyqt5界面设计 项目源码 毕业设计

    一.项目主要技术 Python语言.dlib.OpenCV.Pyqt5界面设计.sqlite3数据库 本系统使用dlib作为人脸识别工具,dlib提供一个方法可将人脸图片数据映射到128维度的空间向量 ...

  7. python opencv 人脸比对_Python3.5+openCv在Windows下利用LBP算法进行人脸识别并匹配

    之前的人脸识别匹配需要大量图片进行建模,然后通过概率匹配,结果不是很准确,同时也不符合一般需求.一般需求是人员通过摄像头拍摄一张照片,然后将照片保存进行命名,之后如果再次通过摄像头进行验证时候,通过算 ...

  8. 利用OpenCV的Haar特征目标检测方法进行人脸识别的尝试(一)

    一.前言 由于还处于学习阶段,大多数内容都是从网上学习借鉴的,重复的内容就不多赘述,只是将自己的经验和想法分享出来.感觉不错的学习资源如下 http://www.cnblogs.com/tornado ...

  9. opencv 训练人脸对比_Page21-树莓派4B人脸检测与识别(opencv)

    申明:本系列专栏相关说明与镜像包.源码等: 塔图:Page00-本系列实验记录说明​zhuanlan.zhihu.com 一.人脸检测(后续有时间再补录个操作视频吧) 人脸识别的先决在于先进行人脸检测 ...

最新文章

  1. Keras 最新《面向小数据集构建图像分类模型》
  2. 对typedef void (*sighandler_t)(int)的理解(声明了一种类型:sighandler_t)
  3. 板材开料最优算法_板材套料软件AutoNest与Tekla Structures协同工作实现设计到加工自动化...
  4. 模态对话框的消息循环原理及分析笔记
  5. ios14.3开发之使用纯代码创建UITabbarController
  6. 实战oracle 12c 处理索引坏块一例
  7. 以太坊本地开发环境搭建
  8. vue 获取安卓原生方法_H5-vue与原生Android、ios交互获取相册图片
  9. 文件共享文件传输samba ftp nfs
  10. 数据挖掘导论(完整版).Introduction.To.Data.Mining习题英文版答案
  11. fontForge开源字体定制工具
  12. Android之高仿墨迹天气桌面组件(AppWidgetProvider)
  13. r7525服务器电源管理系统,戴尔 R7525评估:EPYC内核密度让英特尔心碎
  14. 网吧组建及相关技术(无盘技术;VLAN;PacketTrace)
  15. 计算机内存分为两种他们是,计算机内存主要有哪两种?他们的主要特点是什么?...
  16. python seaborn学习笔记
  17. buctoj 2407 B 竖式 题解
  18. C# 群发邮件 (密送、抄送)
  19. windows下修改中用户名为英文
  20. python语言不用编译_python程序不需要编译吗

热门文章

  1. how SAP OData supported option in odata eq ne lt gt?
  2. SAP CRM product customizing下载的第二个队列
  3. 工作激发了我的热情,并不断激励着我” - SAP成都研究院Jerry Wang
  4. 如何定制化SAP Spartacus的购物车图标
  5. SAP CRM Fiori busy dialog的工作原理
  6. 使用JavaScript调用手机平台上的原生API
  7. SAP C4C 和 ERP 中的外部定价模块 - External Pricing原理介绍
  8. ubuntu20.04LTS系统的终端terminal透明化设置
  9. Ubuntu虚拟机磁盘扩容+VM虚拟机开机多出1分30秒的解决方案(终极教程)
  10. oracle 游标循环 while,Oracle的游标使用方法 三种循环