威尼斯人线上娱乐

【威尼斯人线上娱乐】听他们说OpenCV的PHP图像人脸识别技巧,Python及OpenCV录像实时人脸覆盖

24 8月 , 2019  

openCV是二个开源的用C/C++开垦的微管理器图形图像库,特别庞大,钻探资料很齐全。本文敬服是介绍怎样利用php来调用当中的部分的遵循。人脸考察技术只是openCV四个使用分支。
1.安装
从源代码编写翻译成一个动态的so文件。
1.1.安装 OpenCV (OpenCV 1.0.0)
下载地址:
#tar xvzf OpenCV-1.0.0.tar.gz
#cd opencv-1.0.0
#./configure
#make
#make install
#make check (检查是不是安装任何不易)
唤醒: 不要指定安装路线,不然前面编写翻译facedetect会找不到OpenCV的路子。
1.2 安装facedetect
下载地址
#tar xzvf facedetect-1.0.0.tar.gz
#cd facedetect-1.0.0
#phpize && ./configure && make && make install
编写翻译完事后会提醒facedetect.so 文件所在的任务。
末尾确认在php.ini插手
extension=facedetect.so,重启apache.
2.函数选拔
在phpinfo()里检查是不是有facedetect这几个模块。
从openCV源代码/data/haarcascades/里头收取全数xml文件放在php的推行目录下
//检查有多少个脸型
var_dump(face_count(‘party.jpeg’,
haarcascade_frontalface_alt.xml’));
//再次回到脸型在图纸中的地方参数,三个则赶回数组
$arr = face_detect(‘party.jpeg’,
haarcascade_frontalface_alt2.xml’);
print_r($arr);
3.应用
构成imagick能够将图纸做一下使用。因为
face_detect只回去七个矩形参数,包含x,y坐标和w,h长度宽度参数。上边是自家的多个运用demo

Python及OpenCV录制实时人脸覆盖
摄像实时人脸检验功用已经做出来了就差人脸覆盖了,求助,作者的代码如下,请各位大神间接在本人的代码里投入人脸覆盖代码就可以,感激;
import cv2

OpenCV的人脸检查测量试验功用在相似场馆如故不错的。而ubuntu正好提供了python-opencv那一个包,用它能够一本万利地落到实处人脸检查测验的代码。

复制代码 代码如下:

face_威尼斯人线上娱乐 ,cascade =
cv2.CascadeClassifier(‘E:\openCV\opencv\sources/data/haarcascades/haarcascade_frontalface_alt2.xml’)
cap = cv2.VideoCapture
while True:
ret,img = cap.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
【威尼斯人线上娱乐】听他们说OpenCV的PHP图像人脸识别技巧,Python及OpenCV录像实时人脸覆盖。faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for in faces:
cv2.rectangle,,,2)
cv2.imshow(‘img’,img)

写代码在此之前应抢先安装python-opencv:

<?php
if($_FILES){
$img = $_FILES[‘pic’][‘tmp_name’];
$arr = face_detect($img, ‘haarcascade_frontalface_alt2.xml’);
//$arr1 = face_detect($img,
‘haarcascade_frontalface_alt_tree.xml’);
if(is_array($arr1)) $all =array_merge($arr,$arr1);
else $all = $arr;
$im = new Imagick($img);
//$draw =new ImagickDraw();
//$borderColor = new ImagickPixel(‘red’);
//$draw->setFillAlpha(0.0);
//$draw->setStrokeColor ($borderColor);
//$draw->setStrokeWidth (1);
if(is_array($all)){
foreach ($all as $v){
$im_cl = $im->clone();
$im_cl->cropImage($v[‘w’],$v[‘h’],$v[‘x’],$v[‘y’]);
$im_cl->swirlImage(60);
$im->compositeImage( $im_cl, Imagick::COMPOSITE_OVER , $v[‘x’],
$v[‘y’] );
//$draw->rectangle($v[‘x’],$v[‘y’],$v[‘x’]+$v[‘w’],$v[‘y’]+$v[‘h’]);
//$im->drawimage($draw);
}
}
header( “Content-Type: image/png” );
echo $im;
}else{
?>
<meta http-equiv=“Content-Type” content=“text/html; charset=utf-8″
/>
<form method=“POST” enctype=“multipart/form-data”>
人脸识别试验:只援助jpg,png<br>
上传一张图片 <input type=“file” name=“pic”>
<input type=“submit” value=“upload”>
</form>
<?
}
?>

if cv2.waitKey &0xFF == ord:
break
cap.release()
cv2.destroyAllWindows()

复制代码 代码如下:

参谋资料:

http://www.opencv.org.cn/index.php/首页

$ sudo apt-get install python-opencv

你只怕感兴趣的稿子:

  • 在松木丛派2或三月泡派B+上设置Python和OpenCV的课程
  • opencv 做人脸识别 opencv
    人脸相配深入分析
  • python结合opencv达成人脸检查实验与追踪
  • Python+Opencv识别两张相似图片
  • OpenCV 2.4.3 C++
    平滑管理深入分析
  • python-opencv在有噪音的图景下提取图像的大致实例
  • visual studio 二〇一三装置配置格局图像和文字化教育程
    附opencv配置教程
  • 在Python下选用OpenCV来旋转图像的学科
  • 依附C++达成kinect+opencv
    获取深度及彩色数据
  • OpenCV中的cv::Mat函数将数据写入txt文件

切切实实原理就没有多少说了,能够参照一下那篇作品。直接上源码。

复制代码 代码如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# face_detect.py

# Face Detection using OpenCV. Based on sample code from:
#

# Usage: python face_detect.py <image_file>

import sys, os
from opencv.cv import *
from opencv.highgui import *
from PIL import Image, ImageDraw
from math import sqrt

def detectObjects(image):
    “””Converts an image to grayscale and prints the locations of any
faces found”””
    grayscale = cvCreateImage(cvSize(image.width, image.height), 8, 1)
    cvCvtColor(image, grayscale, CV_BGR2GRAY)

    storage = cvCreateMemStorage(0)
    cvClearMemStorage(storage)
    cvEqualizeHist(grayscale, grayscale)

    cascade = cvLoadHaarClassifierCascade(
       
‘/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml’,
        cvSize(1,1))
    faces = cvHaarDetectObjects(grayscale, cascade, storage, 1.1, 2,
        CV_HAAR_DO_CANNY_PRUNING, cvSize(20,20))

    result = []
    for f in faces:
        result.append((f.x, f.y, f.x+f.width, f.y+f.height))

    return result

def grayscale(r, g, b):
    return int(r * .3 + g * .59 + b * .11)

def process(infile, outfile):

    image = cvLoadImage(infile);
    if image:
        faces = detectObjects(image)

    im = Image.open(infile)

    if faces:
        draw = ImageDraw.Draw(im)
        for f in faces:
            draw.rectangle(f, outline=(255, 0, 255))

        im.save(outfile, “JPEG”, quality=100)
    else:
        print “Error: cannot detect faces on %s” % infile

if __name__ == “__main__”:
    process(‘input.jpg’, ‘output.jpg’)

写代码此前应当…


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图