最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java+OpenCV實(shí)現(xiàn)人臉檢測(cè)并自動(dòng)拍照

 更新時(shí)間:2019年07月23日 11:31:03   作者:大數(shù)據(jù)菜鳥001  
這篇文章主要為大家詳細(xì)介紹了Java+OpenCV實(shí)現(xiàn)人臉檢測(cè),并調(diào)用筆記本攝像頭實(shí)時(shí)抓拍,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

java+opencv實(shí)現(xiàn)人臉檢測(cè),調(diào)用筆記本攝像頭實(shí)時(shí)抓拍,人臉會(huì)用紅色邊框標(biāo)識(shí)出來(lái),并且將抓拍的目錄存放在src下,圖片名稱是時(shí)間戳。

環(huán)境配置:win7 64位,jdk1.8

CameraBasic.java

package com.njupt.zhb.test;

import java.awt.EventQueue;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

import org.opencv.core.*;
import org.opencv.highgui.Highgui;
import org.opencv.highgui.VideoCapture;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
/**
 * 動(dòng)態(tài)人臉檢測(cè)并裁剪
 * @author hyj
 *
 */
public class CameraBasic {
 static {
  System.out.println(System.getProperty("java.library.path")); 
  System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
 }
 private JFrame frame;
 private static JLabel label;
 private static int flag = 0;

 public static void main(String[] args) {
  EventQueue.invokeLater(new Runnable() {
   @Override
   public void run() {
    try {
     CameraBasic window = new CameraBasic();
     window.frame.setVisible(true);
    } catch (Exception e) {
     e.printStackTrace();
    }
   }
  });

  VideoCapture camera = new VideoCapture();//創(chuàng)建Opencv中的視頻捕捉對(duì)象
  camera.open(0);//open函數(shù)中的0代表當(dāng)前計(jì)算機(jī)中索引為0的攝像頭,如果你的計(jì)算機(jī)有多個(gè)攝像頭,那么一次1,2,3……
  if (!camera.isOpened()) {//isOpened函數(shù)用來(lái)判斷攝像頭調(diào)用是否成功
   System.out.println("Camera Error");//如果攝像頭調(diào)用失敗,輸出錯(cuò)誤信息
  } else {
   Mat frame = new Mat();//創(chuàng)建一個(gè)輸出幀
   while (flag == 0) {
    camera.read(frame);//read方法讀取攝像頭的當(dāng)前幀
//    CascadeClassifier faceDetector = new CascadeClassifier("src/com/njupt/zhb/test/lbpcascade_frontalface.xml");
    CascadeClassifier faceDetector = new CascadeClassifier("src/com/njupt/zhb/test/haarcascade_frontalface_alt.xml");
    MatOfRect faceDetections = new MatOfRect();
    faceDetector.detectMultiScale(frame, faceDetections);
    Rect [] rectArray = faceDetections.toArray();
    if (rectArray.length > 0) {
     
     for (int i=0;i<rectArray.length;i++) {
      Rect rect = rectArray[i];
      Rect rectCrop = new Rect(rect.x, rect.y, rect.width, rect.height);
      if (rect.width + rect.height > rectCrop.height + rectCrop.width) {
       rectCrop = new Rect(rect.x, rect.y, rect.width, rect.height);
      }
       System.out.println(String.format("檢測(cè)到 %s 個(gè)人臉! ", rectArray.length));
       Mat imageRoi = new Mat(frame, rectCrop);
       String name = System.currentTimeMillis()+".png";
       Highgui.imwrite(name, imageRoi);
       
      
      Core.rectangle(frame, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 0, 255), 2);
     }
    }
    

    //轉(zhuǎn)換圖像格式并輸出
    label.setIcon(new ImageIcon(mat2BufferedImage.matToBufferedImage(frame)));

    try {
     Thread.sleep(500);//線程暫停500ms
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }

    
    
    
//    if (faceCount > 0) {
//     faceSerialCount++;
//     System.out.println(faceSerialCount);
//    } else {
//     faceSerialCount = 0;
//    }
//
//    if (faceSerialCount > 6) {
//     Mat imageRoi = new Mat(frame, rectCrop);
//     Highgui.imwrite("haha.png", imageRoi);
//     faceSerialCount = 0;
//    }
   }
  }
 }

 private CameraBasic() {
  initialize();
 }

 private void initialize() {
  frame = new JFrame();
  frame.setBounds(100, 100, 1000, 600);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.getContentPane().setLayout(null);
  label = new JLabel("");
  label.setBounds(0, 0, 1000, 500);
  frame.getContentPane().add(label);
 }
 
 
}

完整源碼下載地址:Java+OpenCV實(shí)現(xiàn)人臉檢測(cè)并拍照

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springboot中如何集成Druid

    Springboot中如何集成Druid

    Druid是Java語(yǔ)言中最好的數(shù)據(jù)庫(kù)連接池,Druid能夠提供強(qiáng)大的監(jiān)控和擴(kuò)展功能,本篇主要講解一下?Springboot中如何集成?Druid?,感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • Java中tomcat memecached session 共享同步問題的解決辦法

    Java中tomcat memecached session 共享同步問題的解決辦法

    這篇文章主要介紹了Java中tomcat memecached session 共享同步問題的解決辦法的相關(guān)資料,需要的朋友可以參考下
    2015-10-10
  • Java?Mybatis?foreach嵌套foreach?List<list<Object>>問題

    Java?Mybatis?foreach嵌套foreach?List<list<Object>&

    在MyBatis的mapper.xml文件中,foreach元素常用于動(dòng)態(tài)生成SQL查詢條件,此元素包括item(必選,元素別名)、index(可選,元素序號(hào)或鍵)、collection(必選,指定迭代對(duì)象)、open、separator、close(均為可選,用于定義SQL結(jié)構(gòu))
    2024-09-09
  • 使用Java增刪改查數(shù)據(jù)庫(kù)的操作方法

    使用Java增刪改查數(shù)據(jù)庫(kù)的操作方法

    這篇文章主要介紹了使用Java增刪改查數(shù)據(jù)庫(kù)的操作方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • Java實(shí)戰(zhàn)之簡(jiǎn)單的文件管理器

    Java實(shí)戰(zhàn)之簡(jiǎn)單的文件管理器

    這篇文章主要介紹了Java實(shí)戰(zhàn)之簡(jiǎn)單的文件管理器,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Spring Native實(shí)現(xiàn)0.059s啟動(dòng)一個(gè)SpringBoot項(xiàng)目

    Spring Native實(shí)現(xiàn)0.059s啟動(dòng)一個(gè)SpringBoot項(xiàng)目

    Spring Native是Spring框架的一個(gè)子項(xiàng)目,旨在提供一種將Spring應(yīng)用程序編譯為本地可執(zhí)行文件的方法,從而提高啟動(dòng)時(shí)間和資源效率,本文主要介紹了Spring Native實(shí)現(xiàn)0.059s啟動(dòng)一個(gè)SpringBoot項(xiàng)目,感興趣的可以了解一下
    2024-02-02
  • Java中break、continue、return在for循環(huán)中的使用

    Java中break、continue、return在for循環(huán)中的使用

    這篇文章主要介紹了break、continue、return在for循環(huán)中的使用,本文是小編收藏整理的,非常具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-11-11
  • 分析Netty直接內(nèi)存原理及應(yīng)用

    分析Netty直接內(nèi)存原理及應(yīng)用

    Netty作為一個(gè)流行的應(yīng)用框架,它的強(qiáng)悍之處是性能強(qiáng)悍,可以輕松承載數(shù)萬(wàn)并發(fā); 其編程模型簡(jiǎn)單,容易上手; 這就給大家打開了一扇通向高性能的大門。高效io模型略去不說,我們今天主要來(lái)看看內(nèi)存控制這塊的強(qiáng)大之處
    2021-06-06
  • Java中IO流簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java中IO流簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java io系統(tǒng)的設(shè)計(jì)初衷,就是為了實(shí)現(xiàn)“文件、控制臺(tái)、網(wǎng)絡(luò)設(shè)備”這些io設(shè)置的通信。接下來(lái)通過本文給大家介紹Java中IO流簡(jiǎn)介,感興趣的朋友一起看看吧
    2017-05-05
  • kettle指定jdk8的路徑啟動(dòng)的實(shí)現(xiàn)

    kettle指定jdk8的路徑啟動(dòng)的實(shí)現(xiàn)

    本文主要介紹了指定jdk8的路徑啟動(dòng)的實(shí)現(xiàn),通過修改kettle的配置文件來(lái)指定使用jdk8版本啟動(dòng),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03

最新評(píng)論

花莲县| 隆化县| 苍山县| 张北县| 怀柔区| 新绛县| 离岛区| 石首市| 青田县| 长白| 舟山市| 安义县| 通化县| 甘谷县| 阿克陶县| 沙湾县| 清流县| 宜都市| 福安市| 平远县| 镇坪县| 萍乡市| 鄂托克前旗| 麦盖提县| 五大连池市| 三亚市| 新田县| 景洪市| 道真| 巴彦淖尔市| 达州市| 汕尾市| 土默特左旗| 饶河县| 柳河县| 开阳县| 瑞昌市| 洱源县| 公安县| 大英县| 逊克县|