Java OpenCV4.0.0實(shí)現(xiàn)實(shí)時(shí)人臉識(shí)別
本文實(shí)例為大家分享了javaOpenCV-4.0.0 實(shí)時(shí)人臉識(shí)別,供大家參考,具體內(nèi)容如下
package com.xu.opencv;
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.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
import org.opencv.videoio.VideoCapture;
/**
*
* @Title: Image.java
* @Description: OpenCV-4.0.0 測(cè)試文件
* @Package com.xu.test
* @author: xuhyacinth
* @date: 2019年5月7日12:13:13
* @version: V-1.0.0
* @Copyright: 2019 xuhyacinth
*
*/
public class Image {
static {
//在使用OpenCV前必須加載Core.NATIVE_LIBRARY_NAME類(lèi),否則會(huì)報(bào)錯(cuò)
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
public static void main(String[] args) {
videoFace();
}
/**
* OpenCV-4.0.0 實(shí)時(shí)人臉識(shí)別
* @return: void
* @date: 2019年5月7日12:16:55
*/
public static void videoFace() {
VideoCapture capture=new VideoCapture(0);
Mat image=new Mat();
int index=0;
if (capture.isOpened()) {
while(true) {
capture.read(image);
HighGui.imshow("實(shí)時(shí)人臉識(shí)別", getFace(image));
index=HighGui.waitKey(1);
if (index==27) {
break;
}
}
}
return;
}
/**
* OpenCV-4.0.0 人臉識(shí)別
* @date: 2019年5月7日12:16:55
* @param image 待處理Mat圖片(視頻中的某一幀)
* @return 處理后的圖片
*/
public static Mat getFace(Mat image) {
// 1 讀取OpenCV自帶的人臉識(shí)別特征XML文件
CascadeClassifier facebook=new CascadeClassifier("E:\\OpenCV-4.0.0\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml");
// 2 特征匹配類(lèi)
MatOfRect face = new MatOfRect();
// 3 特征匹配
facebook.detectMultiScale(image, face);
Rect[] rects=face.toArray();
System.out.println("匹配到 "+rects.length+" 個(gè)人臉");
// 4 為每張識(shí)別到的人臉畫(huà)一個(gè)圈
for (int i = 0; i < rects.length; i++) {
Imgproc.rectangle(image,new Point(rects[i].x,rects[i].y), new Point(rects[i].x + rects[i].width,rects[i].y + rects[i].height), new Scalar(0, 255, 0));
Imgproc.putText(image,"Human", new Point(rects[i].x, rects[i].y),Imgproc.FONT_HERSHEY_SCRIPT_SIMPLEX, 1.0, new Scalar(0, 255, 0),1,Imgproc.LINE_AA,false);
//Mat dst=image.clone();
//Imgproc.resize(image, image, new Size(300,300));
}
return image;
}
}
效果圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
IDEA中Mybatis的MGB使用逆向工程配置的詳細(xì)教程
這篇文章主要介紹了IDEA中Mybatis的MGB使用逆向工程配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
SpringCloud應(yīng)用骨架開(kāi)發(fā)詳解
這篇文章主要介紹了SpringCloud應(yīng)用骨架開(kāi)發(fā)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
IDEA編寫(xiě)JavaWeb出現(xiàn)亂碼問(wèn)題解決方案
這篇文章主要介紹了IDEA編寫(xiě)JavaWeb出現(xiàn)亂碼問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Java實(shí)現(xiàn)EasyCaptcha圖形驗(yàn)證碼的具體使用
Java圖形驗(yàn)證碼,支持gif、中文、算術(shù)等類(lèi)型,可用于Java Web、JavaSE等項(xiàng)目,下面就跟隨小編一起來(lái)了解一下2021-08-08
SpringBoot 利用RestTemplate http測(cè)試
這篇文章主要介紹了SpringBoot 利用RestTemplate http測(cè)試,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Java 實(shí)現(xiàn)緩存的三種方式及問(wèn)題匯總
這篇文章主要介紹了Java 實(shí)現(xiàn)緩存的三種方式及問(wèn)題匯總,HashMap實(shí)現(xiàn)緩存,可以實(shí)現(xiàn)簡(jiǎn)單的本地緩存,但是實(shí)際開(kāi)發(fā)中不推薦,我們可以簡(jiǎn)單模擬一下緩存的實(shí)現(xiàn),本文通過(guò)示例代碼介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-03-03
Reactor定制一個(gè)生產(chǎn)的WebClient實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Reactor定制一個(gè)生產(chǎn)的WebClient實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
java實(shí)現(xiàn)excel和txt文件互轉(zhuǎn)
本篇文章主要介紹了java實(shí)現(xiàn)excel和txt文件互轉(zhuǎn)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04

