當前位置:首頁 » 編程語言 » 人臉識別代碼python

人臉識別代碼python

發布時間: 2023-12-05 05:23:27

python人臉識別所用的優化演算法有什麼

python三步實現人臉識別

Face Recognition軟體包

這是世界上最簡單的人臉識別庫了。你可以通過Python引用或者命令行的形式使用它,來管理和識別人臉。

該軟體包使用dlib中最先進的人臉識別深度學習演算法,使得識別准確率在《Labled Faces in the world》測試基準下達到了99.38%。

它同時提供了一個叫face_recognition的命令行工具,以便你可以用命令行對一個文件夾中的圖片進行識別操作。

特性

在圖片中識別人臉

找到圖片中所有的人臉

這里是一個例子:

1
  • https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_picture
  • ⑵ 誰用過python中的第三方庫face recognition

    簡介
    該庫可以通過python或者命令行即可實現人臉識別的功能。使用dlib深度學習人臉識別技術構建,在戶外臉部檢測資料庫基準(Labeled Faces in the Wild)上的准確率為99.38%。
    在github上有相關的鏈接和API文檔。

    在下方為提供的一些相關源碼或是文檔。當前庫的版本是v0.2.0,點擊docs可以查看API文檔,我們可以查看一些函數相關的說明等。

    安裝配置
    安裝配置很簡單,按照github上的說明一步一步來就可以了。
    根據你的python版本輸入指令:
    pip install face_recognition11

    或者
    pip3 install face_recognition11

    正常來說,安裝過程中會出錯,會在安裝dlib時出錯,可能報錯也可能會卡在那不動。因為pip在編譯dlib時會出錯,所以我們需要手動編譯dlib再進行安裝。

    按照它給出的解決辦法:
    1、先下載下來dlib的源碼。
    git clone

    2、編譯dlib。
    cd dlib
    mkdir build
    cd build
    cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1
    cmake --build1234512345

    3、編譯並安裝python的拓展包。
    cd ..
    python3 setup.py install --yes USE_AVX_INSTRUCTIONS --no DLIB_USE_CUDA1212

    注意:這個安裝步驟是默認認為沒有GPU的,所以不支持cuda。
    在自己手動編譯了dlib後,我們可以在python中import dlib了。
    之後再重新安裝,就可以配置成功了。
    根據你的python版本輸入指令:
    pip install face_recognition11

    或者
    pip3 install face_recognition11

    安裝成功之後,我們可以在python中正常import face_recognition了。

    編寫人臉識別程序
    編寫py文件:
    # -*- coding: utf-8 -*-
    #

    # 檢測人臉
    import face_recognition
    import cv2

    # 讀取圖片並識別人臉
    img = face_recognition.load_image_file("silicon_valley.jpg")
    face_locations = face_recognition.face_locations(img)
    print face_locations

    # 調用opencv函數顯示圖片
    img = cv2.imread("silicon_valley.jpg")
    cv2.namedWindow("原圖")
    cv2.imshow("原圖", img)

    # 遍歷每個人臉,並標注
    faceNum = len(face_locations)
    for i in range(0, faceNum):
    top = face_locations[i][0]
    right = face_locations[i][1]
    bottom = face_locations[i][2]
    left = face_locations[i][3]

    start = (left, top)
    end = (right, bottom)

    color = (55,255,155)
    thickness = 3
    cv2.rectangle(img, start, end, color, thickness)

    # 顯示識別結果
    cv2.namedWindow("識別")
    cv2.imshow("識別", img)

    cv2.waitKey(0)
    cv2.destroyAllWindows()

    注意:這里使用了python-OpenCV,一定要配置好了opencv才能運行成功。
    運行結果:
    程序會讀取當前目錄下指定的圖片,然後識別其中的人臉,並標注每個人臉。
    (使用圖片來自美劇矽谷)

    編寫人臉比對程序
    首先,我在目錄下放了幾張圖片:

    這里用到的是一張喬布斯的照片和一張奧巴馬的照片,和一張未知的照片。
    編寫程序:
    # 識別圖片中的人臉
    import face_recognition
    jobs_image = face_recognition.load_image_file("jobs.jpg");
    obama_image = face_recognition.load_image_file("obama.jpg");
    unknown_image = face_recognition.load_image_file("unknown.jpg");

    jobs_encoding = face_recognition.face_encodings(jobs_image)[0]
    obama_encoding = face_recognition.face_encodings(obama_image)[0]
    unknown_encoding = face_recognition.face_encodings(unknown_image)[0]

    results = face_recognition.compare_faces([jobs_encoding, obama_encoding], unknown_encoding )
    labels = ['jobs', 'obama']

    print('results:'+str(results))

    for i in range(0, len(results)):
    if results[i] == True:
    print('The person is:'+labels[i])

    運行結果:

    識別出未知的那張照片是喬布斯的。
    攝像頭實時識別
    代碼:
    # -*- coding: utf-8 -*-
    import face_recognition
    import cv2

    video_capture = cv2.VideoCapture(1)

    obama_img = face_recognition.load_image_file("obama.jpg")
    obama_face_encoding = face_recognition.face_encodings(obama_img)[0]

    face_locations = []
    face_encodings = []
    face_names = []
    process_this_frame = True

    while True:
    ret, frame = video_capture.read()

    small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25)

    if process_this_frame:
    face_locations = face_recognition.face_locations(small_frame)
    face_encodings = face_recognition.face_encodings(small_frame, face_locations)

    face_names = []
    for face_encoding in face_encodings:
    match = face_recognition.compare_faces([obama_face_encoding], face_encoding)

    if match[0]:
    name = "Barack"
    else:
    name = "unknown"

    face_names.append(name)

    process_this_frame = not process_this_frame

    for (top, right, bottom, left), name in zip(face_locations, face_names):
    top *= 4
    right *= 4
    bottom *= 4
    left *= 4

    cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)

    cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), 2)
    font = cv2.FONT_HERSHEY_DUPLEX
    cv2.putText(frame, name, (left+6, bottom-6), font, 1.0, (255, 255, 255), 1)

    cv2.imshow('Video', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
    break

    video_capture.release()
    cv2.destroyAllWindows()5455

    識別結果:
    我直接在手機上網路了幾張圖試試,程序識別出了奧巴馬。

    這個庫很cool啊!

    ⑶ 如何實現人臉識別及其原理

    如何實現人臉識別及其原理

    只要開人臉識別功能就行了 人臉識別其實很簡單,相機處理器對拍到的物體進行長寬比例的分析,分析出的數值接近人臉的比例就會自動鎖定,其實就是數學上的計算和比例,也許大家認為人臉差別很大,其實都是遵循著固定的比率的,只要不是畸形,不管胖瘦臉部的比例都是人臉特有的那個值,所以即使是素描畫,相機一樣認為他是人臉,只要他的比例是對的

    winform如何實現人臉識別

    =IF(OR(P9=""),"",Q9&"."&R9&""&LEFT(S9,2)&"")
    意思是當P9為空,就顯示空,否則顯示Q9為整數部份,&"."為加上一個小數點,小數部份為R9和S9的前兩位陣列成.這個公式里的OR和後&""是多餘的,寫成這樣就行=IF(P9="","",Q9&"."&R9&""&LEFT(S9,2))
    Q9=30 R9=32 S9=1.3255在後面的單元格顯示30.3201,如果是當S9整數小於2位,就在前面添0,大於2位就顯示幾位整,那麼輸入
    =Q9&"."&R9&IF(LEN(ROUNDDOWN(S9,0))<2,0&ROUNDDOWN(S9,0),ROUNDDOWN(S9,0))

    如何實現人臉表情識別

    適合啊,我同學做的就跟你一點差別,她是人臉識別,沒有表情。

    蘋果iPhoneX支援人臉識別是如何實現的?

    據說,蘋果新品手機可以「在一百萬張臉中識別出你的肥臉」,還可以通過人臉識別解鎖手機,以及訂制動態3D Animojis 表情。
    蘋果iPhoneX人臉識別是怎麼實現的呢?
    這是一個復雜的技術問題......人臉識別主要包括人臉檢測、特徵提取、人臉分類三個過程。
    簡單地說,就是通過人臉檢測,對五官進行一些關鍵點的定位,然後提取計算機能夠識別的人臉特徵,最後進行一個相似度的比對,從而得到一個人臉識別的結果,也就是判斷「刷臉」的是不是你本人。
    讓人最為激動還是蘋果在取消home鍵後,替代Touch ID的Face ID功能。有了人臉識別技術加持,抬手秒解鎖iPhone的過程真的是更簡單也更迅速。
    不僅如此,蘋果人臉識別解鎖的安全性、可靠性也非常高。運用3D結構光技術,iPhone X 能夠快速對「人臉3D建模」。即使使用者改變發型,戴上眼鏡帽子,或者在晚上,iPhone X都能成功解鎖。
    人臉識別技術這么牛,那它是萬能的嗎?只要是人臉都可以識別、辨認出來么?其實,在進行人臉識別的時候,也存在一些難題,比如人的姿態、光照、遮擋等都會對人臉識別造成影響。

    如何實現人的面部識別?

    首先是面部捕捉。它根據人的頭部的部位進行判定,首先確定頭部,然後判斷眼睛和嘴巴等頭部特徵,通過特徵庫的比對,確認是面部,完成面部捕捉,ai可以這樣做。 不過個人以為這個技術並不好用,特別是在有不止一個人的場景上,比如大合照,對焦點經常亂跑,所以偶的相機基本還是放在中央對焦上,畢竟cpu再聰明,還是人腦更靠譜。。。

    mate9pro,可以實現人臉識別嗎

    Mate9 Pro會支援人臉解鎖/識別功能,正在努力適配中。版本具體的更新資訊,請您關注花粉論壇官方通知。感謝您對華為產品的一貫支援。

    如何用Python實現簡單人臉識別

    你可以使用opencv庫提供的人臉識別模組,這樣子會比較快

    Win10怎樣用Kinect實現人臉識別功能

    具體操作方法:
    1、首先你需要一個連線Windows10電腦和Kinect的介面卡;
    2、然後還需要給系統做一個小手術以獲取Kinect Beta驅動更新:
    - 按Win+R開啟執行,輸入regedit回車開啟登錄檔編輯器;
    - 導航至HKLMSofareMicrosoft
    - 建立子鍵DriverFlightingPartner
    3、在Partner子鍵中新建名為「TargetRing」的專案,將其值設定為「Drivers」。
    不需要重啟電腦,之後你就可以在Windows Update或裝置管理器中更新Kinect Beta驅動了。
    以上就是Windows10用Kinect實現人臉識別功能的方法了,這樣一來只要給連線一個Kinect就可以使用Windows10人臉識別功能,而不用更換電腦了。

    人臉識別技術是怎樣實現人臉精準檢測?

    是的,比如雲脈人臉識別中的人臉檢測技術就是採用三維定向,對人臉三維朝向,做精準到「度」的判斷,以及對人臉特徵點進行「畫素級」定位,輕松判斷眼睛開合狀態,還可通過技術對現有人臉識別做技術上的補充和完善,進而達到識別的創新性和嚴謹性。

    Win10系統怎麼使用Kinect實現人臉識別

    操作方法:
    1、首先你需要一個連線Windows10電腦和Kinect的介面卡;
    2、然後還需要給系統做一個小手術以獲取Kinect Beta驅動更新:
    - 按Win+R開啟執行,輸入regedit回車開啟登錄檔編輯器;
    - 導航至HKLMSofareMicrosoft
    - 建立子鍵DriverFlightingPartner
    3、在Partner子鍵中新建名為「TargetRing」的專案,將其值設定為「Drivers」。
    不需要重啟電腦,之後你就可以在Windows Update或裝置管理器中更新Kinect Beta驅動了。
    以上就是Windows10用Kinect實現人臉識別功能的方法了,這樣一來只要給連線一個Kinect就可以使用Windows10人臉識別功能,而不用更換電腦了。

    ⑷ 如何線上部署用python基於dlib寫的人臉識別演算法

    python使用dlib進行人臉檢測與人臉關鍵點標記

    Dlib簡介:

    首先給大家介紹一下Dlib

    我使用的版本是dlib-18.17,大家也可以在我這里下載:

    之後進入python_examples下使用bat文件進行編譯,編譯需要先安裝libboost-python-dev和cmake

    cd to dlib-18.17/python_examples

    ./compile_dlib_python_mole.bat 123

    之後會得到一個dlib.so,復制到dist-packages目錄下即可使用

    這里大家也可以直接用我編譯好的.so庫,但是也必須安裝libboost才可以,不然python是不能調用so庫的,下載地址:

    將.so復制到dist-packages目錄下

    sudo cp dlib.so /usr/local/lib/python2.7/dist-packages/1

    最新的dlib18.18好像就沒有這個bat文件了,取而代之的是一個setup文件,那麼安裝起來應該就沒有這么麻煩了,大家可以去直接安裝18.18,也可以直接下載復制我的.so庫,這兩種方法應該都不麻煩~

    有時候還會需要下面這兩個庫,建議大家一並安裝一下

    9.安裝skimage

    sudo apt-get install python-skimage1

    10.安裝imtools

    sudo easy_install imtools1

    Dlib face landmarks Demo

    環境配置結束之後,我們首先看一下dlib提供的示常式序

    1.人臉檢測

    dlib-18.17/python_examples/face_detector.py 源程序:

    #!/usr/bin/python# The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt## This example program shows how to find frontal human faces in an image. In# particular, it shows how you can take a list of images from the command# line and display each on the screen with red boxes overlaid on each human# face.## The examples/faces folder contains some jpg images of people. You can run# this program on them and see the detections by executing the# following command:# ./face_detector.py ../examples/faces/*.jpg## This face detector is made using the now classic Histogram of Oriented# Gradients (HOG) feature combined with a linear classifier, an image# pyramid, and sliding window detection scheme. This type of object detector# is fairly general and capable of detecting many types of semi-rigid objects# in addition to human faces. Therefore, if you are interested in making# your own object detectors then read the train_object_detector.py example# program. ### COMPILING THE DLIB PYTHON INTERFACE# Dlib comes with a compiled python interface for python 2.7 on MS Windows. If# you are using another python version or operating system then you need to# compile the dlib python interface before you can use this file. To do this,# run compile_dlib_python_mole.bat. This should work on any operating# system so long as you have CMake and boost-python installed.# On Ubuntu, this can be done easily by running the command:# sudo apt-get install libboost-python-dev cmake## Also note that this example requires scikit-image which can be installed# via the command:# pip install -U scikit-image# Or downloaded from . import sys

    import dlib

    from skimage import io

    detector = dlib.get_frontal_face_detector()

    win = dlib.image_window()

    print("a");for f in sys.argv[1:]:

    print("a");

    print("Processing file: {}".format(f))
    img = io.imread(f)
    # The 1 in the second argument indicates that we should upsample the image
    # 1 time. This will make everything bigger and allow us to detect more
    # faces.
    dets = detector(img, 1)
    print("Number of faces detected: {}".format(len(dets))) for i, d in enumerate(dets):
    print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}".format(
    i, d.left(), d.top(), d.right(), d.bottom()))

    win.clear_overlay()
    win.set_image(img)
    win.add_overlay(dets)
    dlib.hit_enter_to_continue()# Finally, if you really want to you can ask the detector to tell you the score# for each detection. The score is bigger for more confident detections.# Also, the idx tells you which of the face sub-detectors matched. This can be# used to broadly identify faces in different orientations.if (len(sys.argv[1:]) > 0):
    img = io.imread(sys.argv[1])
    dets, scores, idx = detector.run(img, 1) for i, d in enumerate(dets):
    print("Detection {}, score: {}, face_type:{}".format(
    d, scores[i], idx[i]))5767778798081

    我把源代碼精簡了一下,加了一下注釋: face_detector0.1.py

    # -*- coding: utf-8 -*-import sys

    import dlib

    from skimage import io#使用dlib自帶的frontal_face_detector作為我們的特徵提取器detector = dlib.get_frontal_face_detector()#使用dlib提供的圖片窗口win = dlib.image_window()#sys.argv[]是用來獲取命令行參數的,sys.argv[0]表示代碼本身文件路徑,所以參數從1開始向後依次獲取圖片路徑for f in sys.argv[1:]: #輸出目前處理的圖片地址
    print("Processing file: {}".format(f)) #使用skimage的io讀取圖片
    img = io.imread(f) #使用detector進行人臉檢測 dets為返回的結果
    dets = detector(img, 1) #dets的元素個數即為臉的個數
    print("Number of faces detected: {}".format(len(dets))) #使用enumerate 函數遍歷序列中的元素以及它們的下標
    #下標i即為人臉序號
    #left:人臉左邊距離圖片左邊界的距離 ;right:人臉右邊距離圖片左邊界的距離
    #top:人臉上邊距離圖片上邊界的距離 ;bottom:人臉下邊距離圖片上邊界的距離
    for i, d in enumerate(dets):
    print("dets{}".format(d))
    print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}"
    .format( i, d.left(), d.top(), d.right(), d.bottom())) #也可以獲取比較全面的信息,如獲取人臉與detector的匹配程度
    dets, scores, idx = detector.run(img, 1)
    for i, d in enumerate(dets):
    print("Detection {}, dets{},score: {}, face_type:{}".format( i, d, scores[i], idx[i]))

    #繪制圖片(dlib的ui庫可以直接繪制dets)
    win.set_image(img)
    win.add_overlay(dets) #等待點擊
    dlib.hit_enter_to_continue()041424344454647484950

    分別測試了一個人臉的和多個人臉的,以下是運行結果:

    運行的時候把圖片文件路徑加到後面就好了

    python face_detector0.1.py ./data/3.jpg12

    一張臉的:

    兩張臉的:

    這里可以看出側臉與detector的匹配度要比正臉小的很多

    2.人臉關鍵點提取

    人臉檢測我們使用了dlib自帶的人臉檢測器(detector),關鍵點提取需要一個特徵提取器(predictor),為了構建特徵提取器,預訓練模型必不可少。

    除了自行進行訓練外,還可以使用官方提供的一個模型。該模型可從dlib sourceforge庫下載:

    arks.dat.bz2

    也可以從我的連接下載:

    這個庫支持68個關鍵點的提取,一般來說也夠用了,如果需要更多的特徵點就要自己去訓練了。

    dlib-18.17/python_examples/face_landmark_detection.py 源程序:

    #!/usr/bin/python# The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt## This example program shows how to find frontal human faces in an image and# estimate their pose. The pose takes the form of 68 landmarks. These are# points on the face such as the corners of the mouth, along the eyebrows, on# the eyes, and so forth.## This face detector is made using the classic Histogram of Oriented# Gradients (HOG) feature combined with a linear

    ⑸ 人臉識別為什麼用python開發

    可以使用OpenCV,OpenCV的人臉檢測功能在一般場合還是不錯的。而ubuntu正好提供了python-opencv這個包,用它可以方便地實現人臉檢測的代碼。

    寫代碼之前應該先安裝python-opencv:

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

    #face_detect.py

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

    #Usage:pythonface_detect.py<image_file>

    importsys,os
    fromopencv.cvimport*
    fromopencv.highguiimport*
    fromPILimportImage,ImageDraw
    frommathimportsqrt

    defdetectObjects(image):
    """"""
    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=[]
    forfinfaces:
    result.append((f.x,f.y,f.x+f.width,f.y+f.height))

    returnresult

    defgrayscale(r,g,b):
    returnint(r*.3+g*.59+b*.11)

    defprocess(infile,outfile):

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

    im=Image.open(infile)

    iffaces:
    draw=ImageDraw.Draw(im)
    forfinfaces:
    draw.rectangle(f,outline=(255,0,255))

    im.save(outfile,"JPEG",quality=100)
    else:
    print"Error:cannotdetectfaceson%s"%infile

    if__name__=="__main__":
    process('input.jpg','output.jpg')

    ⑹ 怎麼用python調取一個人臉識別 api

    必備知識
    Haar-like
    通俗的來講,就是作為人臉特徵即可。
    Haar特徵值反映了圖像的灰度變化情況。例如:臉部的一些特徵能由矩形特徵簡單的描述,如:眼睛要比臉頰顏色要深,鼻樑兩側比鼻樑顏色要深,嘴巴比周圍顏色要深等。
    opencv api
    要想使用opencv,就必須先知道其能幹什麼,怎麼做。於是API的重要性便體現出來了。就本例而言,使用到的函數很少,也就普通的讀取圖片,灰度轉換,顯示圖像,簡單的編輯圖像罷了。
    如下:
    讀取圖片
    只需要給出待操作的圖片的路徑即可。
    import cv2
    image = cv2.imread(imagepath)
    灰度轉換
    灰度轉換的作用就是:轉換成灰度的圖片的計算強度得以降低。
    import cv2
    gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
    畫圖
    opencv 的強大之處的一個體現就是其可以對圖片進行任意編輯,處理。
    下面的這個函數最後一個參數指定的就是畫筆的大小。
    import cv2
    cv2.rectangle(image,(x,y),(x+w,y+w),(0,255,0),2)
    顯示圖像
    編輯完的圖像要麼直接的被顯示出來,要麼就保存到物理的存儲介質。
    import cv2
    cv2.imshow("Image Title",image)
    獲取人臉識別訓練數據
    看似復雜,其實就是對於人臉特徵的一些描述,這樣opencv在讀取完數據後很據訓練中的樣品數據,就可以感知讀取到的圖片上的特徵,進而對圖片進行人臉識別。
    import cv2
    face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')
    里賣弄的這個xml文件,就是opencv在GitHub上共享出來的具有普適的訓練好的數據。我們可以直接的拿來使用。
    訓練數據參考地址:

    探測人臉
    說白了,就是根據訓練的數據來對新圖片進行識別的過程。
    import cv2
    # 探測圖片中的人臉
    faces = face_cascade.detectMultiScale(
    gray,
    scaleFactor = 1.15,
    minNeighbors = 5,
    minSize = (5,5),
    flags = cv2.cv.CV_HAAR_SCALE_IMAGE
    )
    我們可以隨意的指定裡面參數的值,來達到不同精度下的識別。返回值就是opencv對圖片的探測結果的體現。
    處理人臉探測的結果
    結束了剛才的人臉探測,我們就可以拿到返回值來做進一步的處理了。但這也不是說會多麼的復雜,無非添加點特徵值罷了。
    import cv2
    print "發現{0}個人臉!".format(len(faces))
    for(x,y,w,h) in faces:
    cv2.rectangle(image,(x,y),(x+w,y+w),(0,255,0),2)
    實例
    有了剛才的基礎,我們就可以完成一個簡單的人臉識別的小例子了。
    圖片素材
    下面的這張圖片將作為我們的檢測依據。

    人臉檢測代碼
    # coding:utf-8
    import sys

    reload(sys)
    sys.setdefaultencoding('utf8')
    # __author__ = '郭 璞'
    # __date__ = '2016/9/5'
    # __Desc__ = 人臉檢測小例子,以圓圈圈出人臉
    import cv2
    # 待檢測的圖片路徑
    imagepath = r'./heat.jpg'

    # 獲取訓練好的人臉的參數數據,這里直接從GitHub上使用默認值
    face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')

    # 讀取圖片
    image = cv2.imread(imagepath)
    gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

    # 探測圖片中的人臉
    faces = face_cascade.detectMultiScale(
    gray,
    scaleFactor = 1.15,
    minNeighbors = 5,
    minSize = (5,5),
    flags = cv2.cv.CV_HAAR_SCALE_IMAGE
    )

    print "發現{0}個人臉!".format(len(faces))

    for(x,y,w,h) in faces:
    # cv2.rectangle(image,(x,y),(x+w,y+w),(0,255,0),2)
    cv2.circle(image,((x+x+w)/2,(y+y+h)/2),w/2,(0,255,0),2)

    cv2.imshow("Find Faces!",image)
    cv2.waitKey(0)
    人臉檢測結果
    輸出圖片:

    輸出結果:
    D:\Software\Python2\python.exe E:/Code/Python/DataStructor/opencv/Demo.py
    發現3個人臉!

    熱點內容
    android手機裝linux 發布:2024-12-01 00:35:14 瀏覽:1
    php模塊配置 發布:2024-12-01 00:30:00 瀏覽:95
    九成腳本 發布:2024-12-01 00:23:33 瀏覽:815
    存儲內存和運行內存的區別 發布:2024-12-01 00:03:39 瀏覽:253
    編譯狀態圖原理 發布:2024-11-30 23:54:22 瀏覽:738
    谷歌搜索緩存伺服器地址 發布:2024-11-30 23:38:59 瀏覽:503
    箍筋加密原因 發布:2024-11-30 23:33:38 瀏覽:416
    千兆路由器有哪些配置 發布:2024-11-30 23:33:36 瀏覽:411
    產品配置具體指哪些 發布:2024-11-30 23:28:21 瀏覽:16
    apt編譯環境 發布:2024-11-30 23:28:12 瀏覽:382