玩轉dlib 增加白眉毛處理

2021-10-14 18:31:41 字數 3110 閱讀 5120

經常用美顏相機什麼的,可以給自己增加許多掛飾,感覺很新奇。

自從學習了dlib,就發現原來dlib也支援這種處理

這種處理需要在提取68個特徵點的基礎上進行再次處理。

我這次增加的處理是把自己的黑眉毛變成了白眉毛,下次白眉大俠再演的話,可以找我給他們編輯,不用再把眉毛染白了

利用dlib增加白眉毛處理

眉毛的特徵點是18.19.20.21.22.23.24.25.26.27

"""import dlib

import cv2

import os

predictor_path=

'shape_predictor_68_face_landmarks.dat'

detector=dlib.get_frontal_face_detector(

)sp=dlib.shape_predictor(os.path.join(

"f:\code\pythoncode\dlib\shape_predictor_68_face_landmarks"

,predictor_path)

)point_size =

1point_color =(0

,0,255

)# bgr

thickness =

4# 可以為 0 、4、8

cap=cv2.videocapture(0)

while

true

: ret,frame=cap.read(

)#frame=cv2.imread("gyy1.png")

#if not cap.isopened():

#print("開啟攝像頭")

dets=detector(frame,1)

img=frame.copy(

)print

(frame.shape)

num_faces=

len(dets)

if num_faces==0:

print

("沒有發現人臉"

) cv2.puttext(frame,

'faces:{}'

.format

(num_faces),(

10,30)

,cv2.font_hershey_plain,2,

(0,0

,255),

2)faces=dlib.full_object_detections(

)for k,d in

enumerate

(dets):)

print

(d.left())

leftm=

rightm=

#cv2.rectangle(frame,(d.left(),d.top()),(d.right(),d.bottom()),[0,255,0],3)

shape = sp(frame, d)

for index, pt in

enumerate

(shape.parts())

: pt_pos=

(pt.x,pt.y)

#cv2.circle(frame, pt_pos, point_size, point_color, thickness)

#利用cv2.puttext輸出1-68

font = cv2.font_hershey_******x

#cv2.puttext(frame, str(index+1),pt_pos,font, 0.3, (0, 0, 255), 1, cv2.line_aa)

it=index+

1if it>=

18and it<=22:

elif it>=

23and it<=27:

for index ,item in

enumerate

(leftm)

: startpos=

none

endpos=

none

if index==0:

startpos=leftm[0]

else

: startpos=leftm[index-1]

endpos=leftm[index]

if startpos and endpos:

cv2.line(frame,startpos,endpos,

(255

,255

,255),

10,8)

for index ,item in

enumerate

(rightm)

: startpos=

none

endpos=

none

if index==0:

startpos=rightm[0]

else

: startpos=rightm[index-1]

endpos=rightm[index]

if startpos and endpos:

cv2.line(frame,startpos,endpos,

(255

,255

,255),

10,8)

cv2.puttext(frame,

'press esc quit',(

10,450)

,cv2.font_hershey_plain,2,

(0,0

,255),

2)

cv2.imshow(

'image'

,frame)

if cv2.waitkey(10)

==27

:break

cv2.destroyallwindows(

)

dlib標籤製作

dlib的標籤的資料格式如下 大多用於目標檢測的標籤的資料格式 名 left top y left top x width height 如果用於dlib進行模型訓練,那麼就需要進行資料格式轉換,下面就是標籤的轉換程式 coding utf 8 created on mon sep 10 17 52...

dlib人臉識別

的編寫在jupyter notebook中來完成 jupyter notebook是乙個工具 pip install jupyter 安裝使用 如何啟動 命令列輸入 jupyter notebook 前提,環境變數配置成功 dlib安裝 pip install dlib dlib有不同的版本,最新版...

dlib系列 人臉檢測

dlib 是乙個機器學習庫,採用c 編寫 提供c 和python介面 裡面包含 許多常用機器學習演算法。總之就是很好的框架,是官網給的教程。coding utf 8 import sys import dlib import cv2 from skimage import io 檢測器 detect...