准备 :

安装包安装之后支持多种语言环境,此处使用Java,在Eclipse中引入 openCV目录下的java/opencv-320.jar,同时配置openCV库路径。

Eclipse配置openCV

代码实现 :

package test;

import org.opencv.core.Core;

import org.opencv.core.Mat;

import org.opencv.core.MatOfRect;

import org.opencv.core.Point;

import org.opencv.core.Rect;

import org.opencv.core.Scalar;

import org.opencv.objdetect.CascadeClassifier;

import org.opencv.imgcodecs.Imgcodecs;

import org.opencv.imgproc.Imgproc;

public class Test {

//引入训练好的人脸识别XML文件

static String PAHT = "E:/GOF/OpenCV/bin/test/haarcascade_frontalface_alt.xml";

static String IMAGE_PATH = "E:/GOF/OpenCV/src/test/a.jpg";

static String productPath = "E:/GOF/OpenCV";

public static void main(String[] args) {

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

String Path = Test.class.getResource("haarcascade_frontalface_alt.xml").getPath();

System.out.println(Path);

CascadeClassifier faceDetector = new CascadeClassifier(PAHT);

Mat image = Imgcodecs.imread(IMAGE_PATH);

MatOfRect faceDetections = new MatOfRect();

faceDetector.detectMultiScale(image, faceDetections);

System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));

for (Rect rect : faceDetections.toArray()) {

Imgproc.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height),

new Scalar(0, 255, 0));

}

String filename = "ouput.png";

System.out.println(String.format("Writing %s", filename));

boolean flag = Imgcodecs.imwrite(filename, image);

}

}

实现效果 :

对人脸区域写入边框

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持谷谷点程序。

opencv java 人脸识别_Java OpenCV实现人脸识别过程详解相关推荐

  1. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  2. java 静态 编译_Java中的动态和静态编译实例详解

    Java中的动态和静态编译实例详解 首先,我们来说说动态和静态编译的问题. Q: java和javascript有什么区别? 总结了一下:有以下几点吧: 1.首先从运行环境来说java代码是在JVM上 ...

  3. java switch 值_Java switch多值匹配操作详解

    这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们都知道 switch 用来走流程分支,大 ...

  4. java 分割数据_java 分割csv数据的实例详解

    java 分割csv数据的实例详解 实际需要解析的csv中很多都是从excel中转过来的,数据中本身包含了逗号的数据导致split的过程中发现数据对不上,因此,基于这种特性,重新写了一个csv数据的分 ...

  5. java 接口函数_Java函数式接口Supplier接口实例详解

    这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...

  6. Java指令全集_Java的JVM字节码指令集详解

    本文详细介绍了如何使用javap查看java方法中的字节码.以及各种字节码的含义,并且配以完善的案例,一步步,从头到尾带领大家翻译javap的输出.在文末还附有JVM字节码指令集表. 本文不适合没有J ...

  7. java foreach标签_Java中Velocity foreach循环标签详解

    Java中Velocity foreach循环标签详解 Java Velocity中foreach循环可以很容易的遍历数组或者集合. 定义 #foreach( $elem in $allElems) ...

  8. java supplier接口_Java函数式接口Supplier接口实例详解

    这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...

  9. opencv java 去干扰_java - OpenCV Java修补图像格式要求 - 堆栈内存溢出

    一直试图让修复工作在Android上进行, int height = (int) viewMat.size().height; int width = (int) viewMat.size().wid ...

  10. linux java内存分析_Java内存分析利器MAT使用详解

    这是一篇阅读MAT helper的笔记.Heap dump是Java进程在特定时间的一个内存快照.通常在触发heap dump之前会进行一次full gc,这样dump出来的内容就包含的是被gc后的对 ...

最新文章

  1. rdp协议打开 windows_RDPY - Twisted Python 实现的RDP协议(Windows 远程桌面)
  2. JS-undefined与null的区别
  3. 欢迎使用CSDN-markdown编辑器1
  4. JUC并发编程五 并发架构--Monitor工作原理
  5. 关于IAR的一些总结 -- ARM调试和Flash调试的区别
  6. python查找字符串关键词_Python字符串查找基本操作案例解析
  7. Spark中自定义排序
  8. iOS---------关于野指针定位总结
  9. 如何将目录下几百个lib加入到vs项目属性下的链接器
  10. python超神之路:Python3 列表list合并的4种方法
  11. Python中dict详解
  12. jQuery 异步和同步请求
  13. 面试题02.07.链表相交
  14. 蓝桥杯题目练习 提升篇 [蓝桥杯2018初赛]三体攻击
  15. 物理计算机技术研究生就业前景,物理学就业前景
  16. 解决 | 点击任务栏没有反应
  17. 语法分析器 Java版
  18. HTML5期末大作业:响应式旅游风景家乡网站设计——衢州旅游网站(5页) HTML+CSS+JS 旅游网页设计成品 dw旅游景点介绍网页制作
  19. 实战 | 基于 Serverless 技术的视频截帧架构如何实现?
  20. 博图V16和人机界面仿真为啥不成功啊,哪位大哥麻烦看下

热门文章

  1. Java并发包实际应用_Java并发包之核心AQS
  2. Java程序性能优化——性能指标
  3. 计算机毕业设计php校园餐厅网上订餐系统
  4. 网上订餐系统需求分析报告
  5. matlab给图片滤波,matlab每日学习 图片滤波
  6. 基于Canvas和HTML+CSS3构建JavaScript弹幕库
  7. linux安装软件命令总结
  8. 计算机软件职称考试多媒体,多媒体应用设计师教程(第2版全国计算机技术与软件专业技术资格水平考试指定用书)...
  9. 中小企业管理软件(管家婆辉煌版2top+)安装教程
  10. SpringBoot在线预览PDF文件