opencv java 人脸识别_Java OpenCV实现人脸识别过程详解
准备 :
安装包安装之后支持多种语言环境,此处使用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实现人脸识别过程详解相关推荐
- java mod %区别_Java中 % 与Math.floorMod() 区别详解
%为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...
- java 静态 编译_Java中的动态和静态编译实例详解
Java中的动态和静态编译实例详解 首先,我们来说说动态和静态编译的问题. Q: java和javascript有什么区别? 总结了一下:有以下几点吧: 1.首先从运行环境来说java代码是在JVM上 ...
- java switch 值_Java switch多值匹配操作详解
这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们都知道 switch 用来走流程分支,大 ...
- java 分割数据_java 分割csv数据的实例详解
java 分割csv数据的实例详解 实际需要解析的csv中很多都是从excel中转过来的,数据中本身包含了逗号的数据导致split的过程中发现数据对不上,因此,基于这种特性,重新写了一个csv数据的分 ...
- java 接口函数_Java函数式接口Supplier接口实例详解
这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...
- Java指令全集_Java的JVM字节码指令集详解
本文详细介绍了如何使用javap查看java方法中的字节码.以及各种字节码的含义,并且配以完善的案例,一步步,从头到尾带领大家翻译javap的输出.在文末还附有JVM字节码指令集表. 本文不适合没有J ...
- java foreach标签_Java中Velocity foreach循环标签详解
Java中Velocity foreach循环标签详解 Java Velocity中foreach循环可以很容易的遍历数组或者集合. 定义 #foreach( $elem in $allElems) ...
- java supplier接口_Java函数式接口Supplier接口实例详解
这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...
- opencv java 去干扰_java - OpenCV Java修补图像格式要求 - 堆栈内存溢出
一直试图让修复工作在Android上进行, int height = (int) viewMat.size().height; int width = (int) viewMat.size().wid ...
- linux java内存分析_Java内存分析利器MAT使用详解
这是一篇阅读MAT helper的笔记.Heap dump是Java进程在特定时间的一个内存快照.通常在触发heap dump之前会进行一次full gc,这样dump出来的内容就包含的是被gc后的对 ...
最新文章
- rdp协议打开 windows_RDPY - Twisted Python 实现的RDP协议(Windows 远程桌面)
- JS-undefined与null的区别
- 欢迎使用CSDN-markdown编辑器1
- JUC并发编程五 并发架构--Monitor工作原理
- 关于IAR的一些总结 -- ARM调试和Flash调试的区别
- python查找字符串关键词_Python字符串查找基本操作案例解析
- Spark中自定义排序
- iOS---------关于野指针定位总结
- 如何将目录下几百个lib加入到vs项目属性下的链接器
- python超神之路:Python3 列表list合并的4种方法
- Python中dict详解
- jQuery 异步和同步请求
- 面试题02.07.链表相交
- 蓝桥杯题目练习 提升篇 [蓝桥杯2018初赛]三体攻击
- 物理计算机技术研究生就业前景,物理学就业前景
- 解决 | 点击任务栏没有反应
- 语法分析器 Java版
- HTML5期末大作业:响应式旅游风景家乡网站设计——衢州旅游网站(5页) HTML+CSS+JS 旅游网页设计成品 dw旅游景点介绍网页制作
- 实战 | 基于 Serverless 技术的视频截帧架构如何实现?
- 博图V16和人机界面仿真为啥不成功啊,哪位大哥麻烦看下
热门文章
- Java并发包实际应用_Java并发包之核心AQS
- Java程序性能优化——性能指标
- 计算机毕业设计php校园餐厅网上订餐系统
- 网上订餐系统需求分析报告
- matlab给图片滤波,matlab每日学习 图片滤波
- 基于Canvas和HTML+CSS3构建JavaScript弹幕库
- linux安装软件命令总结
- 计算机软件职称考试多媒体,多媒体应用设计师教程(第2版全国计算机技术与软件专业技术资格水平考试指定用书)...
- 中小企业管理软件(管家婆辉煌版2top+)安装教程
- SpringBoot在线预览PDF文件