1. 程式人生 > 程式設計 >Python用dilb提取照片上人臉的示例

Python用dilb提取照片上人臉的示例

上程式碼:

#coding=utf-8

import cv2
import dlib

path = "imagePath/9.jpg"
img = cv2.imread(path)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

#人臉分類器
detector = dlib.get_frontal_face_detector()
# 獲取人臉檢測器
predictor = dlib.shape_predictor(
  "shape_predictor_68_face_landmarks.dat"
)
color = (0,255,0) # 定義繪製顏色

dets = detector(gray,1)
for face in dets:
  shape = predictor(img,face) # 尋找人臉的68個標定點
  chang=[]
  kuan= []
  # 遍歷所有點,打印出其座標,並圈出來
  for pt in shape.parts():
    pt_pos = (pt.x,pt.y)
    chang.append(pt.x)
    kuan.append(pt.y)
    #cv2.circle(img,pt_pos,1,(0,0),1)
  x1 = max(chang)
  x2 = min(chang)
  y1 = max(kuan)
  y2 = min(kuan)
  cv2.rectangle(img,(x2,y2),(x1,y1),color,1)
  cropped = img[y2 + 1:y1,x2 + 1:x1] # 裁剪座標為[y0:y1,x0:x1]
  cv2.imshow("image",cropped)
  k = cv2.waitKey(0)
  if k == ord("s"):
    cv2.imwrite("imagePath/9-7.png",cropped)
cv2.destroyAllWindows()

識別效果:

Python用dilb提取照片上人臉的示例

以上就是Python用dilb提取照片上人臉的示例的詳細內容,更多關於python 提取人臉的資料請關注我們其它相關文章!