Java OpenCV实现人脸识别过程详解

 更新时间:2019年08月07日 11:51:16   作者:C.J  
这篇文章主要介绍了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);
	}

	
}

实现效果 :

对人脸区域写入边框

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • springBoot集成Elasticsearch 报错 Health check failed的解决

    springBoot集成Elasticsearch 报错 Health check failed的解决

    这篇文章主要介绍了springBoot集成Elasticsearch 报错 Health check failed的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • java同步开篇入门简单介绍

    java同步开篇入门简单介绍

    java中的CountDownLatch、Semaphore、CyclicBarrier这些类又不属于锁,它们和锁又有很多共同点,都是为了协同多线程的执行,都是一种同步器,所以这里就借用同步来取名字了,也就是“同步系列”的来源。下面小编来简单介绍下
    2019-05-05
  • Java中spring boot validation自定义注解使用方式

    Java中spring boot validation自定义注解使用方式

    这篇文章主要介绍了Java中spring boot validation自定义注解使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • IDEA 2022.1.4用前注意事项

    IDEA 2022.1.4用前注意事项

    这篇文章主要介绍了IDEA 2022.1.4用前注意事项,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • Mybatis-Plus实现多主键批量保存及更新详情

    Mybatis-Plus实现多主键批量保存及更新详情

    这篇文章主要介绍了Mybatis-Plus实现多主键批量保存及更新详情,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Spring lazy-init 懒加载的原理小结

    Spring lazy-init 懒加载的原理小结

    lazy-init 是一个非常重要的属性,可以优化应用的启动时间,尤其是在处理大量bean或者复杂依赖关系时,可以显著提高应用的响应速度,本文主要介绍了Spring lazy-init 懒加载的原理小结,感兴趣的可以了解一下
    2025-04-04
  • 详解通过maven运行项目的两种方式

    详解通过maven运行项目的两种方式

    这篇文章主要介绍了通过maven运行项目的两种方式,给大家提到了通过tomcat的方式来启动maven项目的方法,通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • Java实现十进制与二进制互转的示例详解

    Java实现十进制与二进制互转的示例详解

    这篇文章主要为大家详细介绍了Java如何实现十进制与二进制的互转,文中的示例代码讲解详细,对我们学习Java有一定帮助,需要的可以参考一下
    2022-11-11
  • 使用springboot自动配置源码解读

    使用springboot自动配置源码解读

    自动装配是Spring Boot的一个核心特性,允许程序员在开发中更加专注于业务逻辑,而不是花费大量的时间去配置和管理第三方组件,当开发者在pom.xml文件中添加了某个依赖后,Spring Boot通过自动配置的方式,将这些第三方组件的实例自动注入到IOC容器中
    2024-11-11
  • java反射遍历实体类属性和类型,并赋值和获取值的简单方法

    java反射遍历实体类属性和类型,并赋值和获取值的简单方法

    下面小编就为大家带来一篇java反射遍历实体类属性和类型,并赋值和获取值的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04

最新评论