python擷取人臉的代碼分享

來源:互聯網
上載者:User
本文主要和大家分享python擷取人臉的代碼分享,希望大家根據本文能完成python擷取人臉的功能。

usage:python getface.py src out

# -*- codeing: utf-8 -*-import sysimport osimport cv2import dlibinput_dir = sys.argv[1]output_dir = sys.argv[2]print(input_dir)print(output_dir)size = 64if not os.path.exists(output_dir):    os.makedirs(output_dir)# 使用dlib內建的frontal_face_detector作為我們的特徵提取器detector = dlib.get_frontal_face_detector()index = 1for (path, dirnames, filenames) in os.walk(input_dir):    for filename in filenames:        if filename.endswith('.jpg'):            print('Being processed picture %s' % index)        img_path = path + '/' + filename        # 從檔案讀取圖片        img = cv2.imread(img_path)        # 轉為灰階圖片        gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)        # 使用detector進行臉部偵測 dets為返回的結果        dets = detector(gray_img, 1)        # 使用enumerate 函數遍曆序列中的元素以及它們的下標        # 下標i即為人臉序號        # left:人臉左邊距離圖片左邊界的距離 ;right:人臉右邊距離圖片左邊界的距離        # top:人臉上邊距離圖片上邊界的距離 ;bottom:人臉下邊距離圖片上邊界的距離        for i, d in enumerate(dets):            x1 = d.top() if d.top() > 0 else 0            y1 = d.bottom() if d.bottom() > 0 else 0            x2 = d.left() if d.left() > 0 else 0            y2 = d.right() if d.right() > 0 else 0            # img[y:y+h,x:x+w]            face = img[x1:y1, x2:y2]            # 調整圖片的尺寸            face = cv2.resize(face, (size, size))            #cv2.imshow('image', face)            # 儲存圖片            cv2.imwrite(output_dir + '/' + str(index) + '.jpg', face)            index += 1        key = cv2.waitKey(30) & 0xff        if key == 27:            sys.exit(0)  # -*- codeing: utf-8 -*-
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.