opencv 人脸识别 java版------2

代码下载地址 http://download.csdn.net/detail/u013378306/9656546

1.环境搭建:见上一篇博客

整个项目的结构图:

2.编写DetectFaceDemo.java,代码如下:

  1. package com.njupt.zhb.test;  
  2. import org.opencv.core.Core;  
  3. import org.opencv.core.Mat;  
  4. import org.opencv.core.MatOfRect;  
  5. import org.opencv.core.Point;  
  6. import org.opencv.core.Rect;  
  7. import org.opencv.core.Scalar;  
  8. import org.opencv.highgui.Highgui;  
  9. import org.opencv.objdetect.CascadeClassifier;  
  10.   
  11. //  
  12. // Detects faces in an image, draws boxes around them, and writes the results  
  13. // to "faceDetection.png".  
  14. //  
  15. public class DetectFaceDemo {  
  16.   public void run() {  
  17.     System.out.println("\nRunning DetectFaceDemo");  
  18.     System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath());  
  19.     // Create a face detector from the cascade file in the resources  
  20.     // directory.  
  21.     //CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());  
  22.     //Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());  
  23.     //注意:源程序的路径会多打印一个‘/’,因此总是出现如下错误  
  24.         /* 
  25.          * Detected 0 faces Writing faceDetection.png libpng warning: Image 
  26.          * width is zero in IHDR libpng warning: Image height is zero in IHDR 
  27.          * libpng error: Invalid IHDR data 
  28.          */  
  29.     //因此,我们将第一个字符去掉  
  30.     String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);  
  31.     CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);  
  32.     Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));  
  33.     // Detect faces in the image.  
  34.     // MatOfRect is a special container class for Rect.  
  35.     MatOfRect faceDetections = new MatOfRect();  
  36.     faceDetector.detectMultiScale(image, faceDetections);  
  37.   
  38.     System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));  
  39.   
  40.     // Draw a bounding box around each face.  
  41.     for (Rect rect : faceDetections.toArray()) {  
  42.         Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));  
  43.     }  
  44.   
  45.     // Save the visualized detection.  
  46.     String filename = "faceDetection.png";  
  47.     System.out.println(String.format("Writing %s", filename));  
  48.     Highgui.imwrite(filename, image);  
  49.   }  
  50. }  

3.编写测试类:

  1. package com.njupt.zhb.test;  
  2. public class TestMain {  
  3.   public static void main(String[] args) {  
  4.     System.out.println("Hello, OpenCV");  
  5.     // Load the native library.  
  6.     System.loadLibrary("opencv_java246");  
  7.     new DetectFaceDemo().run();  
  8.   }  
  9. }  
  10. //运行结果:  
  11. //Hello, OpenCV  
  12. //  
  13. //Running DetectFaceDemo  
  14. ///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml  
  15. //Detected 8 faces  
  16. //Writing faceDetection.png  

运行结果:

时间: 2024-10-24 00:01:06

opencv 人脸识别 java版------2的相关文章

opencv 人脸识别 环境搭建---java版-----1

代码下载地址 http://download.csdn.net/detail/u013378306/9656546 1.首先下载OpenCV2.4.6,下载的时候,选择windows版的.然后安装 2.其实安装的过程就是解压的过程,并没有什么安装向导之类的,安装完成后,我们最关心的是这个目录:opencv\build\java 如下图所示 注意:opencv-246.jar是需要在opencv的java类库,但是,真正的实现是opencv_java246.dll(X86和X64之分,关键看你的计

脸部识别-关于opencv的人脸识别识别率极低

问题描述 关于opencv的人脸识别识别率极低 我用opencv做了一个人脸识别的应用.主要流程就是,从一幅图中检测出人脸,然后将人脸框定为一张新的图片,再利用这张图片,调用opencv的识别函数进行识别.可问题是,内置的三个算法我都用过了,为什么识别率都非常低呢?甚至基本是无法识别的. 我已经训练好了样本库的,训练用的是证件照,每个人的证件照通过旋转一定角度从而分别形成十个样本. 用于识别的照片是普通的生活照,近距离的人脸照. 解决方案 如果OpenCV提供的库直接的识别率有那么高,就不会还有

OpenCV学习(36) 人脸识别(1)

本文主要参考OpenCV人脸识别教程:http://docs.opencv.org/modules/contrib/doc/facerec/facerec_tutorial.html 1.OpenCV 从2.4开始支持3个新的人脸识别算法. Eigenfaces 极值特征脸 createEigenFaceRecognizer() Fisherfaces createFisherFaceRecognizer() Local Binary Patterns Histograms局部二值直方图 cre

脸部识别-android Opencv 人脸检测

问题描述 android Opencv 人脸检测 请问有大神做过opencv人脸识别的相关demo吗?找了好长时间都是人脸检测 解决方案 最近在做人脸识别,现在初步只做了人脸检测,比较简单,仅供参考. 功能是打开图片,进行人脸检测,输出人脸个数和检测范围. .......省略包 public class Staticdetection2Activity extends Activity { final private static String TAG = "Staticrecognition.

人脸识别-百度开放云BRF java代码

问题描述 百度开放云BRF java代码 求百度人脸识别BRF的java代码,或其他人脸识别的java代码,急,跪求 解决方案 Javacv人脸识别源码(2013.11.23新.包含测试图片,视频,各种包,opencv Dll文件) 软件下载地址 http://download.csdn.net/detail/anqing715/6560059 1.将下载好解压出来的ForFun项目到eclipse中 1)将根目录的全部DLL文件复制到C:windowsSystem32文件夹中.(不移动我的机子

opencv 做人脸识别 opencv 人脸匹配分析_C 语言

机器学习 机器学习的目的是把数据转换成信息. 机器学习通过从数据里提取规则或模式来把数据转成信息. 人脸识别 人脸识别通过级联分类器对特征的分级筛选来确定是否是人脸. 每个节点的正确识别率很高,但正确拒绝率很低. 任一节点判断没有人脸特征则结束运算,宣布不是人脸. 全部节点通过,则宣布是人脸. 工业上,常用人脸识别技术来识别物体. 对图片进行识别 复制代码 代码如下: #include "opencv2/core/core.hpp" #include "opencv2/obj

用vs2015和opencv做人脸识别时碰到LNK2019的错误

问题描述 用vs2015和opencv做人脸识别时碰到LNK2019的错误 错误如下: 不是链接器的问题,应该是代码的问题,但我对c++和vs还不太熟悉.请哪位大神告知.代码如下: #include "stdafx.h" #include #include #include "opencv2/core.hpp" #include "opencv2/face.hpp" #include "opencv2/highgui.hpp"

基于 OpenCV 的人脸识别

##一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenCV 已被广泛运用在各种项目上,从谷歌街景的图片拼接,到交互艺术展览的技术实现中,都有 OpenCV 的身影. OpenCV 起始于 1999 年 Intel 的一个内部研究项目.从那时起,它的开发就一直很活跃.进化到现在,它已支持如 OpenCL 和 OpenGL 等现代技术,也支持如 iOS 和 Android 等平台. 1

求一个java的人脸识别系统源码

问题描述 求一个java的人脸识别系统源码 用java语言开发,可以进行人脸识别的程序,算法不要太复杂,能进行简单的人脸识别就行了 解决方案 求人脸识别系统源代码!!! 解决方案二: 一个完整的项目demo http://download.csdn.net/detail/apbbbbb/9525308