最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python3利用Dlib19.7實(shí)現(xiàn)人臉68個特征點(diǎn)標(biāo)定

 更新時間:2018年02月26日 14:05:55   作者:TimeStamp  
這篇文章主要為大家詳細(xì)介紹了python3利用Dlib19.7實(shí)現(xiàn)人臉68個特征點(diǎn)標(biāo)定,具有一定的參考價值,感興趣的小伙伴們可以參考一下

0.引言

利用Dlib官方訓(xùn)練好的模型“shape_predictor_68_face_landmarks.dat”進(jìn)行68點(diǎn)標(biāo)定,利用OpenCv進(jìn)行圖像化處理,在人臉上畫出68個點(diǎn),并標(biāo)明序號;

實(shí)現(xiàn)的68個特征點(diǎn)標(biāo)定功能如下圖所示:

圖1 人臉68個特征點(diǎn)的標(biāo)定 

1.開發(fā)環(huán)境

  python:3.6.3

  dlib:19.7

  OpenCv, numpy

需要調(diào)用的庫: 

import dlib #人臉識別的庫dlib
import numpy as np #數(shù)據(jù)處理的庫numpy
import cv2 #圖像處理的庫OpenCv

2.設(shè)計流程

工作內(nèi)容主要以下兩大塊:68點(diǎn)標(biāo)定OpenCv繪點(diǎn)

68點(diǎn)標(biāo)定:

借助官方的Demo(face_landmark_detection.py,在之前另一篇博客里面介紹過學(xué)習(xí)Python3 Dlib19.7進(jìn)行人臉面部識別)實(shí)現(xiàn);

OpenCv繪點(diǎn):

介紹了用到的 畫圓函數(shù)cv2.circle() 和 輸出字符串函數(shù) cv2.putText() ;

流程:

  1.調(diào)用dlib庫來進(jìn)行人臉識別,調(diào)用預(yù)測器“shape_predictor_68_face_landmarks.dat”進(jìn)行68點(diǎn)標(biāo)定

  2.存入68個點(diǎn)坐標(biāo)

  3.利用cv2.circle來畫68個點(diǎn)

  4.利用cv2.putText()函數(shù)來畫數(shù)字1-68

3.源碼

# 68-points
# 2017-12-28
# By TimeStamp
# #cnblogs: http://www.cnblogs.com/AdaminXie/
import dlib      #人臉識別的庫dlib
import numpy as np    #數(shù)據(jù)處理的庫numpy
import cv2      #圖像處理的庫OpenCv

# dlib預(yù)測器
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')

path="********************"

# cv2讀取圖像
img=cv2.imread(path+"test.jpg")

# 取灰度
img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

# 人臉數(shù)rects
rects = detector(img_gray, 0)

for i in range(len(rects)):
 landmarks = np.matrix([[p.x, p.y] for p in predictor(img, rects[i]).parts()])

 for idx, point in enumerate(landmarks):
  # 68點(diǎn)的坐標(biāo)
  pos = (point[0, 0], point[0, 1])

  # 利用cv2.circle給每個特征點(diǎn)畫一個圈,共68個
  cv2.circle(img, pos, 5, color=(0, 255, 0))

  # 利用cv2.putText輸出1-68
  font = cv2.FONT_HERSHEY_SIMPLEX
  cv2.putText(img, str(idx+1), pos, font, 0.8, (0, 0, 255), 1, cv2.LINE_AA)

cv2.namedWindow("img", 2)
cv2.imshow("img", img)
cv2.waitKey(0) 

note:OpenCv的畫圖函數(shù)

         1. 畫圓 cv2.circle( img, (p1,p2), r, (255,255,255) )

    參數(shù)1:  img-          圖片對象;

    參數(shù)2:  (p1,p2)-          圓心坐標(biāo);

    參數(shù)3:  r-          半徑;

    參數(shù)4:  (255,255,255)-  顏色數(shù)組;  

   2. 輸出字符 cv2.putText( img,"test", (p1,p2), font, 4, (255,255,255), 2, cv2, LINE_AA )

    參數(shù)1:  img-      圖像對象;

    參數(shù)2:  "test"-      需要打印的字符text(數(shù)字的話可以利用str()轉(zhuǎn)成字符);

    參數(shù)3:  (p1,p2)-      坐標(biāo)textOrg;

    參數(shù)4:  font-      字體fontFace(注意這里 font = cv2.FONT_HERSHEY_SIMPLEX);

    參數(shù)5:  4-       字號fontScale;

    參數(shù)6:  (255,255,255)-   顏色數(shù)組;

    參數(shù)7:  2-        線寬thickness;

    參數(shù)8:  LINE_AA-      線條種類line_type;

*關(guān)于 顏色數(shù)組:

      (255,255,255), (藍(lán)色,綠色紅色),每個值都是0-255;

      比如:藍(lán)色(255,0,0),紫色(255,0,255)    

可以調(diào)整cv2.circle()函數(shù)和cv2.putText()函數(shù)中的 半徑、線寬 等參數(shù)使得輸出滿足需求方便查看;

結(jié)果:

圖2 測試結(jié)果1 

  

圖3 測試結(jié)果2

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 精選39道Python數(shù)據(jù)分析面試題提早備戰(zhàn)金三銀四

    精選39道Python數(shù)據(jù)分析面試題提早備戰(zhàn)金三銀四

    這篇文章主要為大家介紹了39道Python數(shù)據(jù)分析的面試題問答攻略幫助大家提早備戰(zhàn)金三銀四,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多精進(jìn),早日度過寒冬
    2023-12-12
  • 開源Web應(yīng)用框架Django圖文教程

    開源Web應(yīng)用框架Django圖文教程

    Python下有許多款不同的 Web 框架。Django是重量級選手中最有代表性的一位。許多成功的網(wǎng)站和APP都基于Django。Django是一個開放源代碼的Web應(yīng)用框架,由Python寫成。下面我們來一步步學(xué)習(xí)下吧
    2017-03-03
  • python實(shí)現(xiàn)字符串加密 生成唯一固定長度字符串

    python實(shí)現(xiàn)字符串加密 生成唯一固定長度字符串

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)字符串加密,生成唯一固定長度字符串,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • matplotlib實(shí)現(xiàn)自定義散點(diǎn)形狀marker的3種方法

    matplotlib實(shí)現(xiàn)自定義散點(diǎn)形狀marker的3種方法

    本文主要介紹了matplotlib實(shí)現(xiàn)自定義散點(diǎn)形狀marker的3種方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Python關(guān)于sys.argv[]的用法及說明

    Python關(guān)于sys.argv[]的用法及說明

    sys.argv[]是Python中用于從程序外部獲取參數(shù)的列表,參數(shù)索引從0開始,0索引代表腳本名稱本身,后續(xù)索引代表傳遞給腳本的參數(shù),通過指定索引可以獲取特定的參數(shù),如sys.argv[1]獲取第一個傳入?yún)?shù),當(dāng)傳入多個參數(shù)時,可以通過切片或循環(huán)獲取全部參數(shù)
    2024-09-09
  • python tkinter實(shí)現(xiàn)界面切換的示例代碼

    python tkinter實(shí)現(xiàn)界面切換的示例代碼

    今天小編就為大家分享一篇python tkinter實(shí)現(xiàn)界面切換的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python實(shí)現(xiàn)將Excel轉(zhuǎn)換為json的方法示例

    Python實(shí)現(xiàn)將Excel轉(zhuǎn)換為json的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)將Excel轉(zhuǎn)換為json的方法,涉及Python文件讀寫及格式轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • 一文秒懂pandas中iloc()函數(shù)

    一文秒懂pandas中iloc()函數(shù)

    iloc[]函數(shù)屬于pandas庫全稱為index?location,即對數(shù)據(jù)進(jìn)行位置索引,從而在數(shù)據(jù)表中提取出相應(yīng)的數(shù)據(jù),本文通過實(shí)例代碼介紹pandas中iloc()函數(shù),感興趣的朋友一起看看吧
    2023-04-04
  • Python 自動安裝 Rising 殺毒軟件

    Python 自動安裝 Rising 殺毒軟件

    平日里經(jīng)常需要重新安裝殺毒軟件,我使用的是 Rising 該軟件可以將升級后的新版本,壓縮成一個安裝包,當(dāng)升級失敗造成硬盤中的 Rising
    2009-04-04
  • 使用Python實(shí)現(xiàn)Excel表格轉(zhuǎn)圖片

    使用Python實(shí)現(xiàn)Excel表格轉(zhuǎn)圖片

    在數(shù)據(jù)處理與信息分享過程中,Excel表格作為一種強(qiáng)大的數(shù)據(jù)管理工具被廣泛應(yīng)用,這篇文章主要為大家詳細(xì)介紹了如何使用Python將Excel表格轉(zhuǎn)換為圖片,需要的可以參考下
    2024-04-04

最新評論

会理县| 神木县| 洛扎县| 双城市| 黄梅县| 石林| 会宁县| 蓝田县| 德保县| 惠州市| 上杭县| 磴口县| 改则县| 汨罗市| 呼伦贝尔市| 定日县| 福建省| 新蔡县| 秀山| 肥东县| 雅江县| 马鞍山市| 雅江县| 台东县| 海淀区| 都兰县| 丰县| 铜川市| 调兵山市| 化州市| 延安市| 滦南县| 博湖县| 兴隆县| 德钦县| 织金县| 彝良县| 南京市| 建瓯市| 光泽县| 平罗县|