1.環(huán)境搭建
成都創(chuàng)新互聯(lián)公司是專業(yè)的鄒城網(wǎng)站建設(shè)公司,鄒城接單;提供網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行鄒城網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
整個項目的結(jié)構(gòu)圖
2.編寫DetectFaceDemo.java,代碼如下:
[java] view plaincopy
package com.njupt.zhb.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.highgui.Highgui;
import org.opencv.objdetect.CascadeClassifier;
//
// Detects faces in an image, draws boxes around them, and writes the results
// to "faceDetection.png".
//
public class DetectFaceDemo {
public void run() {
System.out.println("\nRunning DetectFaceDemo");
System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath());
// Create a face detector from the cascade file in the resources
// directory.
//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());
//Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());
//注意:源程序的路徑會多打印一個‘/’,因此總是出現(xiàn)如下錯誤
/*
* Detected 0 faces Writing faceDetection.png libpng warning: Image
* width is zero in IHDR libpng warning: Image height is zero in IHDR
* libpng error: Invalid IHDR data
*/
//因此,我們將第一個字符去掉
String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);
CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);
Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));
// Detect faces in the image.
// MatOfRect is a special container class for Rect.
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);
System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));
// Draw a bounding box around each face.
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));
}
// Save the visualized detection.
String filename = "faceDetection.png";
System.out.println(String.format("Writing %s", filename));
Highgui.imwrite(filename, image);
}
}
3.編寫測試類:
[java] view plaincopy
package com.njupt.zhb.test;
public class TestMain {
public static void main(String[] args) {
System.out.println("Hello, OpenCV");
// Load the native library.
System.loadLibrary("opencv_java246");
new DetectFaceDemo().run();
}
}
//運行結(jié)果:
//Hello, OpenCV
//
//Running DetectFaceDemo
///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml
//Detected 8 faces
//Writing faceDetection.png
Java中常見的人臉識別算法有:
Eigenface: 這是一種基于主成分分析的人臉識別算法,它將人臉圖像映射到一個低維的特征空間。
Fisherface: 這是一種基于投影的人臉識別算法,它利用線性判別分析技術(shù)對人臉圖像進(jìn)行分類。
Local Binary Patterns (LBP): 這是一種基于二進(jìn)制像素點比較的人臉識別算法,它提取了圖像中的紋理特征。
Haar-like特征: 這是一種基于積分圖像的人臉識別算法,它檢測圖像中的邊緣特征。
Convolutional Neural Networks (CNNs): 這是一種基于卷積神經(jīng)網(wǎng)絡(luò)的人臉識別算法,它模擬了人類大腦中的視覺識別過程。
這些算法都是廣泛用于人臉識別應(yīng)用中的,根據(jù)具體需求和應(yīng)用環(huán)境選擇合適的算法是很重要的。
1、首先導(dǎo)入模塊dlib模塊安裝其實是比較繁瑣的,要認(rèn)真耐心點,可以參考dlib安裝。
2、其次提取人臉特征編碼,并獲取到人臉五官的位置。
3、最后按步驟敲代碼即可為全部代碼,即可完成。
應(yīng)該可以通過java調(diào)用別人的人臉識別的接口,主要是利用圖像處理的技術(shù),識別關(guān)鍵點
當(dāng)前標(biāo)題:人臉識別代碼java的簡單介紹
文章網(wǎng)址:http://jinyejixie.com/article28/ddogicp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、微信公眾號、云服務(wù)器、網(wǎng)站內(nèi)鏈、域名注冊、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)