本篇文章給大家分享的是有關(guān)Python利用dilb實(shí)現(xiàn)提取照片上人臉,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供宜城企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為宜城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。上代碼:
#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() # 獲取人臉檢測(cè)器 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個(gè)標(biāo)定點(diǎn) chang=[] kuan= [] # 遍歷所有點(diǎn),打印出其坐標(biāo),并圈出來(lái) 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, 255, 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] # 裁剪坐標(biāo)為[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()