因为学校副院长带我们学习OpenCV做计算机视觉图像处理,小杨一向都是非常对于新技术都是非常追求的。在翻阅了众多大牛写的博客文章和百度上的资料后,终于简单的实现了一个通过计算机调取本地摄像头做人脸识别的功能。

1.下载

首先,我们要去opencv的官网下载windows系统的安装包:
下载地址:https://opencv.org/releases/


1.把图1下面bin目录的文件保存到图2中:

2.导入依赖

<!-- opencv + javacv + ffmpeg--><dependency><groupId>org.bytedeco.javacpp-presets</groupId><artifactId>ffmpeg</artifactId><version>4.1-1.4.4</version></dependency><dependency><groupId>org.bytedeco</groupId><artifactId>javacv</artifactId><version>1.4.4</version></dependency><!-- https://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/ffmpeg-platform --><dependency><groupId>org.bytedeco.javacpp-presets</groupId><artifactId>ffmpeg-platform</artifactId><version>4.1-1.4.4</version></dependency><!-- 视频摄像头 --><!-- https://mvnrepository.com/artifact/org.bytedeco/javacv-platform --><dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.4.4</version></dependency><!-- https://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/opencv-platform --><dependency><groupId>org.bytedeco.javacpp-presets</groupId><artifactId>opencv-platform</artifactId><version>4.0.1-1.4.4</version></dependency>

3.导入库依赖File --> Project Structure,点击Modules,选择需要使用opencv.jar的项目。





4.人脸识别Demo:

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
import org.opencv.videoio.VideoCapture;
import org.opencv.videoio.VideoWriter;
import org.opencv.videoio.Videoio;import java.util.Arrays;
import java.util.List;/**** @Title: Opencv 图片人脸识别、实时摄像头人脸识别、视频文件人脸识别* @Description: OpenCV-4.1.1 测试文件* @version: V-1.0.0**/
public class FaceVideo {// 初始化人脸探测器static CascadeClassifier faceDetector;static int i=0;static {System.loadLibrary(Core.NATIVE_LIBRARY_NAME);faceDetector = new CascadeClassifier("D:\\OpenCV\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml");}public static void main(String[] args) {// 1- 从摄像头实时人脸识别,识别成功保存图片到本地getVideoFromCamera();/*** OpenCV-4.1.1 从摄像头实时读取* @return: void*/public static void getVideoFromCamera() {//1 如果要从摄像头获取视频 则要在 VideoCapture 的构造方法写 0VideoCapture capture=new VideoCapture(0);Mat video=new Mat();int index=0;if (capture.isOpened()) {while(i<3) {// 匹配成功3次退出capture.read(video);HighGui.imshow("实时人脸识别", getFace(video));index=HighGui.waitKey(100);if (index==27) {capture.release();break;}}}else{System.out.println("摄像头未开启");}try {capture.release();Thread.sleep(1000);System.exit(0);} catch (InterruptedException e) {e.printStackTrace();}return;}/*** OpenCV-4.1.1 人脸识别* @param image 待处理Mat图片(视频中的某一帧)* @return 处理后的图片*/public static Mat getFace(Mat image) {// 1 读取OpenCV自带的人脸识别特征XML文件(faceDetector)
//        CascadeClassifier facebook=new CascadeClassifier("D:\\Sofeware\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml");// 2  特征匹配类MatOfRect face = new MatOfRect();// 3 特征匹配faceDetector.detectMultiScale(image, face);Rect[] rects=face.toArray();System.out.println("匹配到 "+rects.length+" 个人脸");if(rects != null && rects.length >= 1) {// 4 为每张识别到的人脸画一个圈for (int i = 0; i < rects.length; i++) {Imgproc.rectangle(image, new Point(rects[i].x, rects[i].y), new Point(rects[i].x + rects[i].width, rects[i].y + rects[i].height), new Scalar(0, 255, 0));Imgproc.putText(image, "admin", new Point(rects[i].x, rects[i].y), Imgproc.FONT_HERSHEY_SCRIPT_SIMPLEX, 1.0, new Scalar(0, 255, 0), 1, Imgproc.LINE_AA, false);//Mat dst=image.clone();//Imgproc.resize(image, image, new Size(300,300));}i++;if(i==3) {// 获取匹配成功第10次的照片Imgcodecs.imwrite("D:\\img\\" + "face.png", image);}}return image;
}}}

像这样,出现下列错误:

编辑启动类:Edit Configuration VM options:

-Djava.library.path=D:\OpenCV\opencv\build\java\x64;


执行代码Demo:

OpenCV和java做人脸识别相关推荐

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

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

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

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

  3. java实现人脸识别V3版本开发

    有段时间没有写更新公众号了,也许好多人都忘记了自己还关注了这么个公众号. 因为这段时间确实是有其他的事比较忙,还有一个原因就是自己在技术方面没有学习新的东西,所以没有可更新的(包括博客) 今天,我决定 ...

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

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

  5. 基于opencv和pillow实现人脸识别系统(附demo)

    更多python教程请到友情连接: 菜鸟教程https://www.piaodoo.com 初中毕业读什么技校 http://cntkd.net 茂名一技http://www.enechn.com p ...

  6. OpenCV+face++实现实时人脸识别解锁功能

    1.背景 最近做一个小东西,需要登录功能,一开始做的就是普通的密码登录功能,但是之前看到过python可以做人脸识别,所以我就开了下脑洞,能不能实现一个自己的刷脸解锁功能. 2.知识储备 python ...

  7. html做人脸识别 博客,一个人脸识别+特效的小例子

    模拟了一个时下流行的人脸贴图效果. 直接使用的某app里面的资源,如果利益相关人士不喜, 请在下方留言, 博主看见后将及时删除相关图片资源. demo 使用了FaceTracker(https://g ...

  8. 毕业设计:基于CNN做人脸识别

    基于CNN做人脸识别 首先,我是考虑,这系统在Windows下做还是在Linux.Ubuntu下做比较好? 然后,我都检测过,Windows下可以用python.anaconda写代码都可以.当然,和 ...

  9. java人脸识别教程_用 Java 实现人脸识别功能(附源码)

    > 整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 更多优选 引言 远程在家办公的第N天,快要闲出屁了,今 ...

  10. .NET做人脸识别并分类

    前言 在游乐场.玻璃天桥.滑雪场等娱乐场所,经常能看到有摄影师在拍照片,令这些经营者发愁的一件事就是照片太多了,客户在成千上万张照片中找到自己可不是件容易的事.在一次游玩等活动或家庭聚会也同理,太多了 ...

最新文章

  1. Linux之文件压缩与打包
  2. 【学习笔记】求解简单递归式的一般方法
  3. 线性代数之矩阵逆的微分
  4. 4月30日火车票今日开售,多个线路“一秒没”
  5. Asp.Net请求原理and页面生命周期(转)
  6. 苹果挖角Waymo无人车系统主管,奇女子一枚,曾把车开上火星
  7. Python安装numpy模块及pycharm配置
  8. go语言:函数参数传递详解
  9. jmeter面试题及答案(jmeter接口自动化测试面试题)
  10. 电气工程师证书如何考试拿证
  11. 12个常见idea快捷键
  12. PMP笔记-风险应对策略的区别
  13. Unity移动端自动翻转及横竖屏的设置与检测
  14. Python 教程视频汇总
  15. RNA编辑基本形式与相关技术的研究现状(阅读小结)
  16. 【Shell】shell脚本中的空格
  17. 删除U盘上的EFI分区
  18. IE浏览器版本切换解决的问题
  19. 指针数组和指向指针的指针
  20. 苦于抖音四季文案久已的朋友们快看过来!

热门文章

  1. Linux安装GCC 9.2.0
  2. python函数中文手册-python手册中文版 python函数中文手册.doc
  3. tcping命令详解
  4. 计算机组成原理白中英第五版之总线系统
  5. Java Jad 反编译class文件
  6. 文件已被占用的解决方法
  7. 海量视频资源【网盘直接取】
  8. C语言制作简单计算器
  9. 怎么用服务器跑matlab程序,服务器上跑matlab程序
  10. 网络工具之GNS3安装及使用