源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python中使用OpenCV进行人脸检测的例子

  • 时间:2022-07-01 00:24 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python中使用OpenCV进行人脸检测的例子
OpenCV的人脸检测功能在一般场合还是不错的。而ubuntu正好提供了python-opencv这个包,用它可以方便地实现人脸检测的代码。 写代码之前应该先安装python-opencv:
[url=http://creatingwithcode.com/howto/face-detection-in-static-images-with-python/]这篇文章[/url]。直接上源码。
[u]复制代码[/u] 代码如下:
#!/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')
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部