本文实例为大家分享了Python人脸识别的具体代码,供大家参考,具体内容如下
1.利用opencv库
1
2
3
|
sudo apt - get install libopencv - * sudo apt - get install python - opencv sudo apt - get install python - numpy |
2 .Python实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
import os import os from PIL import Image,ImageDraw import cv def detect_object(image): grayscale = cv.CreateImage((image.width,image.height), 8 , 1 ) #创建空的灰度值图片 cv.CvtColor(image,grayscale,cv.CV_BGR2GRAY) cascade = cv.Load( "/usr/share/opencv/haarcascades/haarcascade_frontalface_alt_tree.xml" ) #记载特征值库,此目录下还有好多库可以选用 rect = cv.HaarDetectObjects(grayscale,cascade,cv.CreateMemStorage(), 1.1 , 2 ,cv.CV_HAAR_DO_CANNY_PRUNING,( 20 , 20 )) result = [] #标记位置 for r in rect: result.append((r[ 0 ][ 0 ],r[ 0 ][ 1 ],r[ 0 ][ 0 ] + r[ 0 ][ 2 ],r[ 0 ][ 1 ] + r[ 0 ][ 3 ])) return result def process(infile): image = cv.LoadImage(infile) if image: faces = detect_object(image) im = Image. open (infile) path = os.path.abspath(infile) save_path = os.path.splitext(path)[ 0 ] + "_face" try : os.mkdir(save_path) except : pass if faces: draw = ImageDraw.Draw(im) count = 0 for f in faces: count + = 1 draw.rectangle(f,outline = ( 255 , 0 , 0 )) a = im.crop(f) file_name = os.path.join(save_path, str (count) + ".jpg" ) a.save(file_name) drow_save_path = os.path.join(save_path, "out.jpg" ) im.save(drow_save_path, "JPEG" ,quality = 80 ) else : print "Error: cannot detect faces on %s" % infile if __name__ = = "__main__" : process( "test3.jpg" ) |
3.效果对比
4.参考资料
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/u013542440/article/details/51039608