Java OpenCV4.0.0實(shí)現(xiàn)實(shí)時(shí)人臉識(shí)別
更新時(shí)間:2019年07月24日 16:27:57 作者:深色風(fēng)信子
這篇文章主要為大家詳細(xì)介紹了Java OpenCV4.0.0實(shí)現(xiàn)實(shí)時(shí)人臉識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(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)文章
SpringBoot項(xiàng)目@Async方法問(wèn)題解決方案
這篇文章主要介紹了SpringBoot項(xiàng)目@Async方法問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04關(guān)于Java垃圾回收開(kāi)銷(xiāo)降低的幾條建議
垃圾回收(Garbage Collection)是Java虛擬機(jī)(JVM)垃圾回收器提供的一種用于在空閑時(shí)間不定時(shí)回收無(wú)任何對(duì)象引用的對(duì)象占據(jù)的內(nèi)存空間的一種機(jī)制,下面這篇文章主要介紹了關(guān)于Java垃圾回收開(kāi)銷(xiāo)降低的幾條建議,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-02-02spring Cloud微服務(wù)跨域?qū)崿F(xiàn)步驟
這篇文章主要介紹了spring Cloud微服務(wù)跨域?qū)崿F(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11解決netty中spring對(duì)象注入失敗的問(wèn)題
這篇文章主要介紹了解決netty中spring對(duì)象注入失敗的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02ApplicationListenerDetector監(jiān)聽(tīng)器判斷demo
這篇文章主要為大家介紹了ApplicationListenerDetector監(jiān)聽(tīng)器判斷demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03