Java图片人物照片头像识别

需求:

采用java去识别图片中的是否含有人物头像。

实现:

基于jviolajones实现,具体的jar信息如下:

<dependency>
	<groupId>org.eclipse</groupId>
	<artifactId>jviolajones</artifactId>
	<version>2.0</version>
</dependency>
<dependency>
	<groupId>org.jdom</groupId>
	<artifactId>jdom</artifactId>
	<version>1.1</version>
</dependency>

依赖一个描述文件haarcascade_frontalface_default.xml,详情参见附件

具体代码如下:

 public static void findFaces() throws Exception {
	 String fileName1="/home/test/1.jpg";  
	 String fileName2="/home/test/2.jpg";  
	 String fileName3="/home/test/3.jpg";  
	 Detector detector= Detector.create("haarcascade_frontalface_default.xml");
	 BufferedImage bi1=ImageIO.read(new File(fileName1));
	 
	 BufferedImage bi2=ImageIO.read(new File(fileName2));
	 BufferedImage bi3=ImageIO.read(new File(fileName3));
	 List<Rectangle> res=detector.getFaces(bi1, 2, 1.25f, 0.1f,3,true);  
	 System.out.println(res);
	 res=detector.getFaces(bi2, 2, 1.25f, 0.1f,3,true);  
	 System.out.println(res);
	 res=detector.getFaces(bi3, 2, 1.25f, 0.1f,3,true);  
	 System.out.println(res);
 }

 

返回结果说明:

List<Rectangle>:为图片中头像出现的区域,包括起始坐标(x,y)以及对于的宽和高。如果需要加涂层可以基于Rectangle进行图层添加

 

你可能感兴趣的:(java)