使用js插件实现简单有趣的人脸识别

news/2024/7/24 13:36:07 标签: js人脸识别, 人脸识别, js

前阶段无聊想搞个人脸识别玩玩,发现一个有趣的插件包,虽然不算特别强大但是相对还是能实现效果,主要是它简单啊,让你5分钟内就会用,可以去玩玩看,现在我把它拿出来和大家分享

这个插件就是jquery.facedetection

首先

npm install jquery.facedetection

先引入jquery

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

下载依赖包,我们只需要把依赖包引进来,只需要三个js文件

<script src="node_modules/jquery.facedetection/src/ccv.js"></script>
<script src="node_modules/jquery.facedetection/src/jquery.facedetection.js"></script>
<script src="node_modules/jquery.facedetection/src/cascade.js"></script>

直接上代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        html,body{
            margin: 0;
            padding:0;
        }
        .drawDiv{
            position: absolute;
            border: 3px solid yellow;
        }
        #image{
            float: left;
        }
        .imgDiv{
            float: left;
        }
    </style>
</head>

<body>
    <img id="image" src=""/>
    <div class="imgDiv">

        <div class="draw"></div>
        <br/>
        <input type="button" value="开始识别" onclick="identifyFace()">
        <input type="file"onchange="selectImage(this);" />
    </div>



    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script src="node_modules/jquery.facedetection/src/ccv.js"></script>    <script src="node_modules/jquery.facedetection/src/jquery.facedetection.js"></script>    <script src="node_modules/jquery.facedetection/src/cascade.js"></script>    <script>
        //识别框样式
        var str='';
        //上传图片,使用文件流
        function selectImage(file){
            if(!file.files || !file.files[0]){
                return;
            }
            var reader = new FileReader();
            reader.onload = function(evt){
                console.log(evt);
                $('#image').attr('src', evt.target.result);
            }
            str = '';
            document.getElementsByClassName('draw')[0].innerHTML = '';
            reader.readAsDataURL(file.files[0]);
        }

        //开始识别
        function identifyFace() {
            str='';
            $('#image').faceDetection(
                function (faces) {

                    for (var i in faces) {
                        //识别结果循环传入方法drawFace
                        drawFace(faces[i].x, faces[i].y, faces[i].width, faces[i].height,faces[i].confidence);
                    }
                }
            );
        }

        //图片识别区的x,y轴以及宽高,confidence表示自信程度
        function drawFace(x,y,width,height,confidence){

            var confidenceStr='';
            if(confidence<0){
                confidenceStr='自信满满'
            }else if(confidence>2){
                confidenceStr='很不自信啊'
            }else{
                confidenceStr='一般般'
            }
            //将框框套上去
            str+='<div class="drawDiv" style="left:'+x+'px;top:'+y+'px;width:'+width+'px;height:'+height+'px;">'+confidenceStr+'</div>'
            document.getElementsByClassName('draw')[0].innerHTML=str
        }
    </script>
</body>
</html>

使用faceDetection将图片进行识别,识别结果通过回调函数形式传到face参数通过for in循环导出识别的结果,x,y分别为识别区的x,y方位,width和height就是宽高啦,confidence表示自信程度,自信程度这块可能不是很标准,不过大致还是能实现了

识别结果长这个样

项目预览

http://cgdmusic.cn:1234/face/index.html

插件的github

GitHub - jaysalvat/jquery.facedetection: A jQuery plugin to detect faces on images, videos and canvases.


http://www.niftyadmin.cn/n/764562.html

相关文章

python如何使用多线程_Python多线程与多线程中join()的用法

概述 Python多线程与多进程中join()方法的效果是相同的。 下面仅以多线程为例&#xff0c;首先需要明确几个概念&#xff1a; A、当一个进程启动之后&#xff0c;会默认产生一个主线程&#xff0c;因为线程是程序执行流的最小单元&#xff0c;当设置多线程时&#xff0c;主线程…

express + socket.io实现超简易聊天室

什么是socket.io socket.io是webSocket的一个封装组件&#xff0c;实现双向通信&#xff0c;可以用这个来实现聊天室功能、在线小游戏等等&#xff0c;是个有趣好玩的东西&#xff0c;博主就喜欢捣鼓这些 实现聊天室思路 聊天室就是要聊天嘛&#xff0c;就像打电话一样&#xf…

python numpy 生成矩阵_从numpy python中的稀疏矩阵生成密集矩阵 - python

我有一个Sqlite数据库&#xff0c;其中包含以下类型的架构: termcount(doc_num, term , count) 该表包含术语及其在文档中的各自计数。 喜欢 (doc1 , term1 ,12) (doc1, term 22, 2) . . (docn,term1 , 10) 该矩阵可以被视为稀疏矩阵&#xff0c;因为每个文档都包含很少的具有非…

python代码打印杨辉三角_Python练习实例61 | Python打印出杨辉三角

坦白说&#xff0c;这道题相对来说还是比较难一点的。 查了很多相关资料&#xff0c;能够解答出这道题的无非是两种人&#xff0c;一种是基础知识非常扎实的人&#xff0c;另外一种是编程天赋及编程思想层次很高的人。小黄人.jpg 下面就来欣赏一下这两位各自的代码吧。 # 打印杨…

纯css实现3D立方体

关注公众号&#xff0c;每天都能领外卖红包 纯css实现3D立方体特效&#xff0c;通过3D旋转和平移原理实现&#xff0c;话不多说直接贴代码 <html> <head><style type"text/css">body,html{margin: 0;}body{display: flex;align-items: center;}#p…

js实现雪花效果(超简单)

打个广告&#xff0c;最底下的公众号&#xff0c;可以每天领外卖红包、打车优惠券还有96折充值电费等&#xff0c;需要的可以关注一下哦 使用js实现雪花飘落效果&#xff0c;话不多说直接上代码 <!DOCTYPE html> <html lang"en"> <head><meta…

python 边读边写文件_Python 文件读写

Python 文件读写 Python内置了读写文件的函数&#xff0c;用法和C是兼容的。本节介绍内容大致有&#xff1a;文件的打开/关闭、文件对象、文件的读写等。 本章节仅示例介绍 TXT 类型文档的读写&#xff0c;也就是最基础的文件读写&#xff0c;也需要注意编码问题&#xff1b;其…

QQ音乐源更换问题

在我前面提到的原有的源上面加个参数 guid126548448原博客以更新传送门 > https://blog.csdn.net/hhzzcc_/article/details/79769386