91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何利用dlib獲取人臉的68個landmark

發布時間:2021-05-11 10:59:53 來源:億速云 閱讀:486 作者:小新 欄目:開發技術

小編給大家分享一下python如何利用dlib獲取人臉的68個landmark,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

python的五大特點是什么

python的五大特點:1.簡單易學,開發程序時,專注的是解決問題,而不是搞明白語言本身。2.面向對象,與其他主要的語言如C++和Java相比, Python以一種非常強大又簡單的方式實現面向對象編程。3.可移植性,Python程序無需修改就可以在各種平臺上運行。4.解釋性,Python語言寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序。5.開源,Python是 FLOSS(自由/開放源碼軟件)之一。

(1) 單人臉情況

import cv2
import dlib

path = "1.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")
#獲取人臉框位置信息
dets = detector(gray, 1)#1表示采樣(upsample)次數 0識別的人臉少點,1識別的多點,2識別的更多,小臉也可以識別
for face in dets:
  shape = predictor(img, face) # 尋找人臉的68個標定點
  # 遍歷所有點,打印出其坐標,并圈出來
  for pt in shape.parts():
    pt_pos = (pt.x, pt.y)
    cv2.circle(img, pt_pos, 2, (0, 0, 255), 1)#img, center, radius, color, thickness

  cv2.imshow("image", img)

cv2.waitKey(0)
cv2.destroyAllWindows()

(2) 多人臉情況

import cv2
import dlib

path2 = "zxc.jpg"
img = cv2.imread(path2)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

#人臉檢測畫框
detector = dlib.get_frontal_face_detector()
# 獲取人臉關鍵點檢測器
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
#獲取人臉框位置信息
dets = detector(gray, 1)#1表示采樣(upsample)次數 0識別的人臉少點,1識別的多點,2識別的更多,小臉也可以識別

for i in range(len(dets)):
  shape = predictor(img, dets[i]) # 尋找人臉的68個標定點
  # 遍歷所有點,打印出其坐標,并圈出來
  for pt in shape.parts():
    pt_pos = (pt.x, pt.y)
    cv2.circle(img, pt_pos, 2, (0, 0, 255), 1)#img, center, radius, color, thickness

cv2.imshow("image", img)

cv2.waitKey(0)#等待鍵盤輸入
cv2.destroyAllWindows()

(3) 獲取電腦攝像頭實時識別標定

import cv2
import dlib
import numpy as np

cap = cv2.VideoCapture(0)#打開筆記本的內置攝像頭,若參數是視頻文件路徑則打開視頻
cap.isOpened()

def key_points(img):
  points_keys = []
  PREDICTOR_PATH = "shape_predictor_68_face_landmarks.dat"
  detector = dlib.get_frontal_face_detector()
  predictor = dlib.shape_predictor(PREDICTOR_PATH)
  rects = detector(img,1)

  for i in range(len(rects)):
    landmarks = np.matrix([[p.x,p.y] for p in predictor(img,rects[i]).parts()])
    for point in landmarks:
      pos = (point[0,0],point[0,1])
      points_keys.append(pos)
      cv2.circle(img,pos,2,(255,0,0),-1)
  return img

while(True):
  ret, frame = cap.read()#按幀讀取視頻,ret,frame是cap.read()方法的兩個返回值。其中ret是布爾值,如果讀取幀是正確的則返回True,如果文件讀取到結尾,它的返回值就為False。frame就是每一幀的圖像,是個三維矩陣。
  # gray = cv2.cvtColor(frame)
  face_key = key_points(frame)
  cv2.imshow('frame',face_key)
  if cv2.waitKey(1) & 0xFF == ord('q'):
    break

cap.release()#釋放攝像頭
cv2.destroyAllWindows()#關閉所有圖像窗口

以上是“python如何利用dlib獲取人臉的68個landmark”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲松县| 安达市| 多伦县| 册亨县| 盐亭县| 碌曲县| 那曲县| 昭觉县| 五大连池市| 富蕴县| 牟定县| 望江县| 太湖县| 曲沃县| 嘉鱼县| 威海市| 富蕴县| 瑞丽市| 山丹县| 古浪县| 台中县| 五家渠市| 福海县| 杂多县| 晋城| 教育| 布拖县| 金门县| 阿拉善左旗| 常宁市| 滦平县| 陕西省| 濮阳县| 迭部县| 吉林省| 囊谦县| 玉环县| 靖西县| 郴州市| 静安区| 长顺县|