OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP进行加速处理。 —-摘自维基百科http://zh.wikipedia.org/wiki/OpenCV。
在本例中在Windows系统中采用Java+Eclipse,采用OpenCV-2.4.5库,编写一段简单的人脸识别代码。
首先,下载OpenCV-2.4.5.exe,进行安装,实际上只是解压而已。
然后将jar包导入Eclipse,jar包路径为opencv解压目录中的opencv\build\java\opencv-245.jar。
接下来导入opencv库,参考下面的步骤:
接下来,修改ClassPath中的opencv-2.4.5中的Native library location为opencv解压目录中的opencv\build\java\x64(64位操作系统的路径,如果是32位操作系统请选择opencv\build\java\x86路径)。
eclipse开发环境搭建成功之后就可以编写代码进行人脸识别了,代码样例Test.java如下:
package com.tcl.uviewer.features.featuresImpl; import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.MatOfRect; import org.opencv.core.Point; import org.opencv.core.Scalar; import org.opencv.highgui.Highgui; import org.opencv.objdetect.CascadeClassifier; public class Test { public static void detectFace(String p_w_picpathPath) { System.out.println(“\nRunning DetectFaceDemo”); // 导入opencv的库 System.loadLibrary(Core.NATIVE_LIBRARY_NAME); // 从配置文件lbpcascade_frontalface.xml中创建一个人脸识别器,该文件位于opencv安装目录中 CascadeClassifier faceDetector = new CascadeClassifier( “C:/lbpcascade_frontalface.xml”); Mat p_w_picpath = Highgui.imread(p_w_picpathPath); // 在图片中检测人脸 MatOfRect faceDetections = new MatOfRect(); faceDetector.detectMultiScale(p_w_picpath, faceDetections); System.out.println(String.format(“Detected %s faces”, faceDetections.toArray().length)); // 在每一个识别出来的人脸周围画出一个方框 for (org.opencv.core.Rect rect : faceDetections.toArray()) { Core.rectangle(p_w_picpath, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0)); } // 将结果保存到文件 String filename = “faceDetection.png”; System.out.println(String.format(“Writing %s”, filename)); Highgui.imwrite(filename, p_w_picpath); } public static void main(String[] args) { String p_w_picpathPath = “C:/005.jpg”; Test.detectFace(p_w_picpathPath); } } |
其中原始图片路径是C:/005.jpg,如下图所示:
运行上面的代码,输出如下:
Running DetectFaceDemo Detected 33 faces Writing faceDetection.png |
表示检测到了33个人脸,输出文件是faceDetection.png,图片如下所示:
至此,一个很简单的人脸识别程序就实现完了,当然opencv的功能远不止如此,有兴趣的话可以继续研究。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
暂无评论内容