javaswing使用opencv调用本地摄像头实现人脸识别

javaswing使⽤opencv调⽤本地摄像头实现⼈脸识别java 使⽤opencv调⽤本地摄像头显⽰在swing panel中  实现⼈脸识别
⾸先给上效果图 ,程序启动后opencv调⽤摄像头获取图像信息显⽰在Jpanel
带芯人孔
输⼊⾝份证号点击⼈脸采集按钮,开始采集⼈脸,采集到⼈脸后保存到⽂件夹
采集成功后在⽂件夹可查询采集成功的⼈脸图⽚,后续根据⾃⼰业务使⽤
开发步骤
1.⾸先下载opencv,我下载的是opencv-3.
2.0-vc14,
下载后安装
2.到安装⽬录,到java的jar 需要导⼊到你的java项⽬
3.根据你的操作系统位数选择相应的opencv动态库复制到你程序运⾏的jdk下
复制opencv_java320.dll到jdk bin⽬录下
4.我的项⽬结构
5.核⼼代码
//begin
face.faceUtil;
import *;
钨杆import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
import javax.swing.*;
import java.awt.image.BufferedImage;
import java.util.Map;
public class FaceUtil {
public BufferedImage mat2BI(Mat mat){
int dataSize =ls()*ws()*(int)mat.elemSize();
byte[] data=new byte[dataSize];
<(0, 0,data);
int type=mat.channels()==1?
BufferedImage.TYPE_BYTE_GRAY:BufferedImage.TYPE_3BYTE_BGR;
if(type==BufferedImage.TYPE_3BYTE_BGR){
for(int i=0;i<dataSize;i+=3){
for(int i=0;i<dataSize;i+=3){
byte blue=data[i+0];
data[i+0]=data[i+2];
data[i+2]=blue;
}
}
BufferedImage image=new ls(),ws(),type);
return image;
}
/**
* opencv实现⼈脸识别
* @param img
*/
public static Mat detectFace(Map cacheMap,Mat img, int count) throws Exception
程控步进衰减器系统
{
// System.out.println("Running DetectFace ... ");
/
/ 从配置⽂件l中创建⼀个⼈脸识别器,该⽂件位于opencv安装⽬录中
生姜切片机隧道定位//不能使⽤中⽂路径
CascadeClassifier faceDetector = new CascadeClassifier("G:\\workSoft\\opencv\\window\\installPack\\opencv\\sources\\data\\haarcascades\\haarcascade_fro
// 在图⽚中检测⼈脸
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(img, faceDetections);
//System.out.println(String.format("Detected %s faces", Array().length));
Rect[] rects = Array();
车辆排队长度
//输⼊了⾝份证号在采集⼈脸
JTextField jTextField_sfzh=(("jTextField_sfzh");
boolean ("collectFace")==null?false:(("collectFace");
String sfzh=Text();
if(!collectFace){
return img;
}
if(rects != null && rects.length >= 1){
System.out.println("sfzh:"+sfzh+"  count:"+count+"  if(rects != null && rects.length >= 1) --> true  监测到⼈脸 ");
//  Imgcodecs.imwrite("G:\\workSoft\\opencv\\faceImage\\face"+count+".png", img);
Imgcodecs.imwrite("G:\\workSoft\\opencv\\faceImage\\"+sfzh+"_face.png", img);
for (Rect rect : rects) {
new Scalar(0, 0, 255), 2);
}
//采集完成
cacheMap.put("collectFace",false);
//窗⼝显⽰⼈脸采集成功
JFrame jf=(JFrame) ("jf");
JOptionPane.showMessageDialog(jf, "⾝份证号:"+sfzh+"⼈脸采集成功!","提⽰",JOptionPane.INFORMATION_MESSAGE);
}
return img;
}
}
//end
项⽬源码已上传到csdn,opencv安装包也打包进去了,需要的⼩伙伴可以下载,使⽤idea+jdk1.8开发的java项⽬,直接可以运⾏的

本文发布于:2024-09-22 15:24:28,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/114931.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:采集   安装   程序   动态   下载
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议