java 人脸检测_Java+opencv3.2.0实现人脸检测功能
说到人脸检测,首先要了解Haar特征分类器。Haar特征分类器说白了就是一个个的xml文件,不同的xml里面描述人体各个部位的特征值,比如人脸、眼睛等等。OpenCV3.2.0中提供了如下特征文件:
haarcascade_eye.xml
haarcascade_eye_tree_eyeglasses.xml
haarcascade_frontalcatface.xml
haarcascade_frontalcatface_extended.xml
haarcascade_frontalface_alt.xml
haarcascade_frontalface_alt_tree.xml
haarcascade_frontalface_alt2.xml
haarcascade_frontalface_default.xml
haarcascade_fullbody.xml
haarcascade_lefteye_2splits.xml
haarcascade_licence_plate_rus_16stages.xml
haarcascade_lowerbody.xml
haarcascade_profileface.xml
haarcascade_righteye_2splits.xml
haarcascade_russian_plate_number.xml
haarcascade_smile.xml
haarcascade_upperbody.xml
通过加载不同的特征文件,就能达到相应的检测效果。
OpenCV3.2.0中detectMultiScale函数参数说明:
detectMultiScale(Mat image, MatOfRect objects, double scaleFactor, int minNeighbors, int flags, Size minSize, Size maxSize)
image:待检测图片,一般为灰度图(提高效率)
objects:被检测物体的矩形框向量组
scaleFactor:前后两次相继的扫描中,搜索窗口的比例系数。默认为1.1即每次搜索窗口依次扩大10%
minNeighbors:构成检测目标的相邻矩形的最小个数(默认为3个)
flags:要么使用默认值,要么使用CV_HAAR_DO_CANNY_PRUNING,如果设置为CV_HAAR_DO_CANNY_PRUNING,那么函数将会使用Canny边缘检测来排除边缘过多或过少的区域,因此这些区域通常不会是人脸所在区域
minSize:得到的目标区域的最小范围
maxSize:得到的目标区域的最大范围
人脸检测示例代码:
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.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
public class FaceDetect
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
System.out.println("\nRunning FaceDetector");
CascadeClassifier faceDetector = new CascadeClassifier();
faceDetector.load(
"C:\\Program Files\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml");
Mat image = Imgcodecs.imread("F:\\1114.jpg");
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 = "F:\\ouput.jpg";
Imgcodecs.imwrite(filename, image);
}
}
源图像与结果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
java 人脸检测_Java+opencv3.2.0实现人脸检测功能相关推荐
- java opencv3轮廓_Java+opencv3.2.0实现轮廓检测
Java+opencv3.2.0实现轮廓检测 发布时间:2020-08-28 13:27:52 来源:脚本之家 阅读:96 作者:帅气的猫爪 轮廓是由一系列的点组成的集合,表现在图像中就是一条曲线. ...
- java 腐蚀 膨胀_Java+opencv3.2.0之膨胀与腐蚀
腐蚀与膨胀是最基本的形态学操作,它们能够实现多种多样的功能,主要如下: 1) 消除噪声 2) 分割出独立的图像元素,在图像中连接相邻的元素 3) 寻找图像中的明显的极大值区域或极小值区域 4) 求出图 ...
- java百度实时人脸检测_Java对接百度智能云人脸识别
--------------------->这篇文章就是自己做个笔记<-------------------- ----- 看到SDK其实就不需要看我这篇文章了,哈哈哈 ok,先找到人脸识 ...
- python视频行人检测_python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
参照opencv官网例程写了一个基于python的行人检测程序,实现了和自带检测器基本一致的检测效果. opencv版本:3.4.0 训练集和opencv官方用了同一个,可以从http://pasca ...
- java opencv surf_在OpenCV3.1.0中使用SIFT,SURF算法
写在前边: 1.我使用的是python2.7 + OpenCV3.1.0 2.OpenCV3.0.0+的文档有很大问题,很多文档写的还是OpenCV2.0+, OpenCV3.0+根本用不了,其中有一 ...
- java秒表计时器_Java实现的计时器【秒表】功能示例
本文实例讲述了Java实现的计时器[秒表]功能.分享给大家供大家参考,具体如下: 应用名称:Java计时器 用到的知识:Java GUI编程 开发环境:win8+eclipse+jdk1.8 功能说明 ...
- 虹软java接摄像头_java基于虹软sdk实现人脸识别(demo)
开发环境准备: 开发使用到的软件和工具: Jdk8. mysql 5.7.libarcsoft_face.dll(so).libarcsoft_face_engine.dll(so).libarcso ...
- 虹软java接摄像头_Java使用虹软SDK做人脸识别之十分简单的入门
操作系统:Windows10 64位 编程语言:Java 使用spring boot 开发工具:IDEA 一.下载虹软SDK 进入虹软官网 https://ai.arcsoft.com.cn/ 右上角 ...
- java opencv人脸识别_java+opencv+intellij idea实现人脸识别
首先当然是需要安装opencv了,我用的是opencv2.4.13.下载完之后就可以直接安装了,安装过程也很简单,直接下一步下一步就好,我就不上图了. 接下来在opencv下找到jar包,比如我直接安 ...
最新文章
- apk里面的图片不显示是加密了吗_【App】智能电视机视频盒子软件,你们缺吗?...
- 戴尔5598安装系统流程
- JavaSE(二十三)——JVM
- CNN-3: VGGNet 卷积神经网络模型
- pip 设置超时时间_Python pip使用超时问题解决方案
- delphi dll是否可用var参数_时间序列之向量自回归(VAR)学习重点
- 图论算法 —— 图论概述
- 手机充电全部用完充好还是有空就充好?
- 用R读取Excel的新方法
- 贝塞尔曲线的css实现——淘宝加入购物车基础动画
- 【转载】jQuery框架
- java MDC_Java MDC.get方法代碼示例
- cefsharp winform 页面里的单击事件不触发_事件详解C 键盘事件及事件流
- 修改jar包中的配置文件
- 【深度学习模型】了解一下Faster RCNN
- 用Python快速采集ins视频
- python裁剪图片边缘模糊_用cv2模糊部分图像后的锐利边缘
- 分布式与集群的区别是什么
- 【前端+后端】前后端分离之——前后端axios通信
- Java 领域从传统行业向互联网转型你必须知道的事儿
热门文章
- 我创办了一个知识星球
- 对PHP 三元运算、empty、isset用法的理解
- 宝塔Linux tomcat启动不了
- win10 专业版 设置PIN 后还显示添加
- ESP8266固件SDK开发之微信配网(AIRKISS)原理(一)
- 5.25 使用半调图案命令制作影印效果 [Illustrator CC教程]
- 莱姆病的传播媒介生物-肩突硬蜱(Ixodes scapularis)基因组测序
- 雷神911K笔记本安装Win7系统
- Android属性动画完全解析(上),初识属性动画的基本用法
- 我不知道是安稳的背后隐藏着沮丧