Java OpenCV实现人脸识别过程详解
准备 :
下载openCV安装包 : https://opencv.org/
安装包安装之后支持多种语言环境,此处使用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); } }
实现效果 :
对人脸区域写入边框
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
TransmittableThreadLocal线程间传递逻辑示例解析
这篇文章主要介绍了TransmittableThreadLocal线程间传递逻辑示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-06-06SpringBoot如何使用RateLimiter通过AOP方式进行限流
这篇文章主要介绍了SpringBoot如何使用RateLimiter通过AOP方式进行限流,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06springBoot+dubbo+zookeeper实现分布式开发应用的项目实践
本文主要介绍了springBoot+dubbo+zookeeper实现分布式开发应用的项目实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-03-03Spring Cloud Gateway自定义异常处理Exception Handler的方法小结
这篇文章主要介绍了Spring Cloud Gateway自定义异常处理Exception Handler的方法,本文通过两种方法结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-08-08SpringBoot整合Redis实现消息发布与订阅的示例代码
能实现发送与接收信息的中间介有很多,比如:RocketMQ、RabbitMQ、ActiveMQ、Kafka等,本文主要介绍了Redis的推送与订阅功能并集成Spring Boot的实现,感兴趣的可以了解一下2022-08-08
最新评论