人脸识别为什么用python开发

Python028

人脸识别为什么用python开发,第1张

可以使用OpenCV,OpenCV的人脸检测功能在一般场合还是不错的。而ubuntu正好提供了python-opencv这个包,用它可以方便地实现人脸检测的代码

写代码之前应该先安装python-opencv:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

# face_detect.py

 

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

# http://python.pastebin.com/m76db1d6b

 

# 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')

html嵌入python代码(python做人脸识别)

2022-07-31 14:19:00阅读 2300

大家好,又见面了,我是你们的朋友全栈君。

最近闲来无事,研究研究在安卓上跑Python。

想起以前玩过的kivy技术,kivy[1]是一个跨平台的UI框架。当然对我们最有用的是,kivy可以把python代码打包成安卓App。但是由于安卓打包的工具链很长,包括android sdk打包java代码、ndk编译python、 编译各种python依赖包,经常花一整天从入门到放弃。这次使出认真研究的心态,终于找到一个解决方案,于是有了这篇文章:

•只要会python就能写安卓App,无需安卓开发基础,无需编译•手机上也有交互式python解释器,直接调试python代码•可以使用各种python库,包括numpy/opencv等机器学习包•可以与安卓接口交互,使用手机硬件,比如摄像头

那么我们就以人脸识别App为例,看看如何简单几步搞定。先看看成品的效果:

第一步:安装airport.apk

AirPort是我编译好的一个安卓App,里面包含了python解释器和一些常用的python库。

第二步:连接手机的python解释器

启动手机上的AirPort应用,就会运行python解释器。我内置了一个ssh服务器,用于调试代码非常方便。应用启动时会显示手机的ip地址。

在电脑上使用ssh命令,就可以连接到手机。

注意:确保你的手机和电脑在同一局域网中。

#在电脑上连接手机,注意这里ip需要替换成AirPort显示的ipssh -p 8000 [email protected]#输入密码meteorix

然后你就可以在手机上尽情使用python了,比如试试

>>>import os>>>os.getcwd()’/data/data/org.airtest.airport/files/app’>>>import requests>>>r = requests.get(“https://www.baidu.com”)>>>r.status_code200

第三步: 一个摄像头的App

在kivy的官方文档中,我们可以找到这样一个摄像头的example[2]

代码非常简单,Builder.load_string函数加载了一段配