python+opencv實(shí)現(xiàn)的簡(jiǎn)單人臉識(shí)別代碼示例
#
源碼如下:
#!/usr/bin/env python
#coding=utf-8
import os
from PIL import Image, ImageDraw
import cv
def detect_object(image):
'''檢測(cè)圖片,獲取人臉在圖片中的坐標(biāo)'''
grayscale = cv.CreateImage((image.width, image.height), 8, 1)
cv.CvtColor(image, grayscale, cv.CV_BGR2GRAY)
cascade = cv.Load("/opt/local/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):
'''在原圖上框出頭像并且截取每個(gè)頭像到單獨(dú)文件夾'''
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))
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("/Users/zhangdebin/Documents/checkFace2.jpg")
示例圖片1:

可以看出,對(duì)于比較干凈的人臉頭像,使用opencv庫haarcascade_frontalface_alt_tree.xml的識(shí)別精度很高(這張達(dá)到了100%),同時(shí),對(duì)于表情變化的人臉也有很強(qiáng)的魯棒性。
示例圖片2:

但是,對(duì)于上傳的比較隨意的頭像照片,比如示例圖片2這些有帽子、眼鏡遮擋的人臉圖片,識(shí)別效果就會(huì)很差,本組只有唯一一個(gè)沒有帽子遮擋的人臉被識(shí)別成功
本次只是簡(jiǎn)單的測(cè)試了下,python使用opencv庫的人臉特征進(jìn)行人臉識(shí)別的效果,僅供初學(xué)參考。
總結(jié)
以上就是本文關(guān)于python+opencv實(shí)現(xiàn)的簡(jiǎn)單人臉識(shí)別代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助,感興趣的朋友可以參閱本站:
在Python web中實(shí)現(xiàn)驗(yàn)證碼圖片代碼分享
如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
- Python基于Opencv來快速實(shí)現(xiàn)人臉識(shí)別過程詳解(完整版)
- opencv 做人臉識(shí)別 opencv 人臉匹配分析
- 基于OpenCV的PHP圖像人臉識(shí)別技術(shù)
- python使用opencv進(jìn)行人臉識(shí)別
- 詳解如何用OpenCV + Python 實(shí)現(xiàn)人臉識(shí)別
- Python opencv實(shí)現(xiàn)人眼/人臉識(shí)別以及實(shí)時(shí)打碼處理
- OpenCV實(shí)現(xiàn)人臉識(shí)別
- Python基于opencv實(shí)現(xiàn)的人臉識(shí)別(適合初學(xué)者)
相關(guān)文章
Python 實(shí)現(xiàn)數(shù)據(jù)庫更新腳本的生成方法
下面小編就為大家?guī)硪黄狿ython 實(shí)現(xiàn)數(shù)據(jù)庫更新腳本的生成方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
Python實(shí)現(xiàn)Opencv cv2.Canny()邊緣檢測(cè)
這篇博客將介紹Canny邊緣檢測(cè)的概念,并利用cv2.Canny()實(shí)現(xiàn)邊緣檢測(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
Python一個(gè)簡(jiǎn)單的通信程序(客戶端 服務(wù)器)
今天小編就為大家分享一篇關(guān)于Python一個(gè)簡(jiǎn)單的通信程序(客戶端 服務(wù)器),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
Python實(shí)現(xiàn)查詢某個(gè)目錄下修改時(shí)間最新的文件示例
這篇文章主要介紹了Python實(shí)現(xiàn)查詢某個(gè)目錄下修改時(shí)間最新的文件,涉及Python使用os與shutil模塊針對(duì)文件的遍歷、屬性獲取、讀寫等相關(guān)操作技巧,需要的朋友可以參考下2018-08-08
Python pytest裝飾器總結(jié)(實(shí)例詳解)
這篇文章主要介紹了Python pytest裝飾器總結(jié),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
Python利用PyPDF2庫實(shí)現(xiàn)輕松提取PDF文本
ython中的PyPDF2庫是一個(gè)非常有用的工具,無論您是需要分析PDF文檔中的內(nèi)容還是需要在文檔中搜索特定的信息,PyPDF2都可以幫助您輕松實(shí)現(xiàn)這些任務(wù),下面我們就來學(xué)習(xí)一下如何利用PyPDF2提取PDF文本吧2023-09-09
python單機(jī)五子棋的代碼實(shí)現(xiàn)示例
五子棋是經(jīng)典的棋牌類游戲,很多人都玩過,那么如何用Python實(shí)現(xiàn)五子棋呢,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10

