[译] 第十二天: OpenCV - Java开发者的人脸识别
2013-12-25 17:40
603 查看
前言
今天的30天挑战,我决定学习怎样用Java实现人脸识别。人脸识别有助于识别任意(数字)图像中的人脸。搜索调查一番后,我发现OpenCV库可以有助于在图像中检测人脸。但是我没找到给Java开发者使用OpenCV库的入门指导,这篇博客也许对要找相关介绍的人有用。package com.shekhar.facedetection; 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.highgui.Highgui; import org.opencv.objdetect.CascadeClassifier; public class FaceDetector { public static void main(String[] args) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); System.out.println("\nRunning FaceDetector"); CascadeClassifier faceDetector = new CascadeClassifier(FaceDetector.class.getResource("haarcascade_frontalface_alt.xml").getPath()); Mat image = Highgui .imread(FaceDetector.class.getResource("shekhar.JPG").getPath()); MatOfRect faceDetections = new MatOfRect(); faceDetector.detectMultiScale(image, faceDetections); System.out.println(String.format("Detected %s faces", faceDetections.toArray().length)); for (Rect rect : faceDetections.toArray()) { Core.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)); Highgui.imwrite(filename, image); } }
View Code
以上代码做了以下动作:
加载原生OpenCV库以便引用Java API.
创建一个CascadeClassifier实例传递加载的分类器的文件名。
然后把图片转换成Java API用Highui类能接受的格式,Mat是OpenCV C++的N维密集数组。
然后在分类器上调用detectMultiScale方法传递图片和MatOfRect对象,之后,MatOfRect就会有认识检测功能。
递归所有的人脸检测并把图片标识成矩形。
最后生成output.png图片文件。
显示如下,这是我的检测前后的图片。
这是今天的内容,继续给反馈吧。
原文:https://www.openshift.com/blogs/day-12-opencv-face-detection-for-java-developers
相关文章推荐
- Day 12: OpenCV —— Java开发者的人脸检测
- OPENCV+JAVA 人脸识别
- Java调用OpenCV人脸识别
- Java之opencv人脸识别
- 利用Java调用OpenCV进行人脸识别
- opencv 人脸识别 环境搭建---java版-----1
- openCV java(JFrame) 实现人脸识别,人脸自动检测,自动保存裁剪后人脸
- 【opencv】Java实现opencv 调用本地摄像头,实现人脸识别、人形识别、人眼识别
- opencv 人脸识别 java版------2
- 利用Java调用OpenCV进行人脸识别
- OpenCV学习笔记[3]Java Demo人脸识别
- Java使用OpenCV进行人脸识别
- Java之Opencv人脸识别-yellowcong
- Java使用OpenCV进行人脸识别
- Eclipse+Java+OpenCV246人脸识别
- Eclipse+Java+OpenCV246人脸识别
- java+opencv+intellij idea实现人脸识别
- Java使用OpenCV实现人脸识别/人眼检测/图片截取/合成/添加水印
- android jni中将大数据回调到java层的时候用法,比如视频流,音频流等,图片流等 比如我用ffmpeg解码好视频流,想送到java层使用opengGL进行显示,opencv进行人脸识别等等
- opencv使用,人脸识别,java使用opencv