国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python環(huán)境使用OpenCV檢測(cè)人臉實(shí)現(xiàn)教程

瀏覽:41日期:2022-07-07 18:29:02

一、文章概述

本文將要講述的是Python環(huán)境下如何用OpenCV檢測(cè)人臉,本文的主要內(nèi)容分為:

1、檢測(cè)圖片中的人臉

2、實(shí)時(shí)檢測(cè)視頻中出現(xiàn)的人臉

3、用運(yùn)設(shè)備的攝像頭實(shí)時(shí)檢測(cè)人臉

二:準(zhǔn)備工作

提前做的準(zhǔn)備:

安裝好Python3

下載安裝OpenCV庫(kù),方法是

pip install opencv-python -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com/pypi/simple

下載特征數(shù)據(jù)HAAR和LBP,這兩種數(shù)據(jù)都能實(shí)現(xiàn)對(duì)人臉特征的提取,HAAR大多是小數(shù)計(jì)算所以運(yùn)算速度較慢,LBP大多是整數(shù)計(jì)算運(yùn)行速度較快。如圖所示,本次實(shí)例用紅框中的文本,其他的文本,比如第一個(gè)haarcascade_eye.xml是眼睛識(shí)別的文本,我們下次再用。

(1)代碼和說(shuō)明

import cv2 as cvimport numpy as npdef face_detect_demo():#人臉檢測(cè)函數(shù) gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)#把圖片變成灰度圖片,因?yàn)槿四樀奶卣餍枰诨叶葓D像中查找 #以下分別是HAAR和LBP特征數(shù)據(jù),任意選擇一種即可,注意:路徑中的‘/’和‘’是有要求的 # 通過(guò)級(jí)聯(lián)檢測(cè)器 cv.CascadeClassifier,加載特征數(shù)據(jù) # face_detector = cv.CascadeClassifier('D:/pyproject/cv_renlianjiance/haarcascades/haarcascade_frontalface_alt_tree.xml') face_detector = cv.CascadeClassifier( 'D:/pyproject/cv_renlianjiance/lbpcascades/lbpcascade_frontalcatface.xml') #在尺度空間對(duì)圖片進(jìn)行人臉檢測(cè),第一個(gè)參數(shù)是哪個(gè)圖片,第二個(gè)參數(shù)是向上或向下的尺度變化,是原來(lái)尺度的1.02倍,第三個(gè)參數(shù)是在相鄰的幾個(gè)人臉檢測(cè)矩形框內(nèi)出現(xiàn)就認(rèn)定成人臉,這里是在相鄰的5個(gè)人臉檢測(cè)框內(nèi)出現(xiàn),如果圖片比較模糊的話建議降低一點(diǎn) faces = face_detector.detectMultiScale(gray, 1.02, 5) for x, y, w, h in faces:#繪制結(jié)果圖 #rectangle參數(shù)說(shuō)明,要繪制的目標(biāo)圖像,矩形的第一個(gè)頂點(diǎn),矩形對(duì)角線上的另一個(gè)頂點(diǎn),線條的顏色,線條的寬度 cv.rectangle(src, (x, y), (x+w, y+h), (0, 0, 255), 2) cv.imshow('result', src)#輸出結(jié)果圖src = cv.imread('D:/pyproject/cv_renlianjiance/cvrenxiangpic/1.jpg')#圖片是JPG和png都可以cv.namedWindow('input image', cv.WINDOW_AUTOSIZE)#創(chuàng)建繪圖窗口cv.namedWindow('result', cv.WINDOW_AUTOSIZE)cv.imshow('input image', src)face_detect_demo()cv.waitKey(0)cv.destroyAllWindows()#作用是能正常關(guān)閉繪圖窗口

(2)結(jié)果展示

Python環(huán)境使用OpenCV檢測(cè)人臉實(shí)現(xiàn)教程

2、視頻中的人臉檢測(cè)

(1)代碼和說(shuō)明

import cv2 as cvimport numpy as npdef face_detect_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # face_detector = cv.CascadeClassifier('D:/pyproject/cv_renlianjiance/haarcascades/haarcascade_frontalface_alt_tree.xml') face_detector = cv.CascadeClassifier('D:/pyproject/cv_renlianjiance/lbpcascades/lbpcascade_frontalcatface.xml') faces = face_detector.detectMultiScale(gray, 1.02, 5) for x, y, w, h in faces: cv.rectangle(image, (x, y), (x+w, y+h), (0, 0, 255), 2) cv.imshow('result', image)capture = cv.VideoCapture('D:/pyproject/cv_renlianjiance/video/1.mp4')cv.namedWindow('result', cv.WINDOW_AUTOSIZE)while (True): #按幀讀取視頻,ret,frame是獲cap.read()方法的兩個(gè)返回值。其中ret是布爾值,如果讀取幀是正確的則返回True,如果文件讀取到結(jié)尾,它的返回值就為False。frame就是每一幀的圖像,是個(gè)三維矩陣。 ret, frame = capture.read() # cv.flip函數(shù)表示圖像翻轉(zhuǎn),沿y軸翻轉(zhuǎn), 0: 沿x軸翻轉(zhuǎn), <0: x、y軸同時(shí)翻轉(zhuǎn) frame = cv.flip(frame, 1) face_detect_demo(frame) #waitKey()方法本身表示等待鍵盤(pán)輸入,參數(shù)是1,表示延時(shí)1ms切換到下一幀圖像,對(duì)于視頻而言; c = cv.waitKey(10) if c == 27:#當(dāng)鍵盤(pán)按下‘ESC’退出程序 break#cv.waitKey(0)參數(shù)為0,如cv2.waitKey(0)只顯示當(dāng)前幀圖像,相當(dāng)于視頻暫停,;cv.waitKey(0)cv.destroyAllWindows()#作用是能正常關(guān)閉繪圖窗口

(2)結(jié)果展示

Python環(huán)境使用OpenCV檢測(cè)人臉實(shí)現(xiàn)教程

3、利用設(shè)備上的攝像頭進(jìn)行人臉檢測(cè),其實(shí)和2中的代碼一樣,只是打開(kāi)攝像頭,而不是讀取視頻文件

代碼和說(shuō)明

import cv2 as cvimport numpy as npdef face_detect_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # face_detector = cv.CascadeClassifier('D:/pyproject/cv_renlianjiance/haarcascades/haarcascade_frontalface_alt_tree.xml') face_detector = cv.CascadeClassifier('D:/pyproject/cv_renlianjiance/lbpcascades/lbpcascade_frontalcatface.xml') faces = face_detector.detectMultiScale(gray, 1.02, 5) for x, y, w, h in faces: cv.rectangle(image, (x, y), (x+w, y+h), (0, 0, 255), 2) cv.imshow('result', image)capture = cv.VideoCapture(0)#其中的0表示電腦中的第一個(gè)相機(jī)cv.namedWindow('result', cv.WINDOW_AUTOSIZE)while (True): #按幀讀取視頻,ret,frame是獲cap.read()方法的兩個(gè)返回值。其中ret是布爾值,如果讀取幀是正確的則返回True,如果文件讀取到結(jié)尾,它的返回值就為False。frame就是每一幀的圖像,是個(gè)三維矩陣。 ret, frame = capture.read() # cv.flip函數(shù)表示圖像翻轉(zhuǎn),沿y軸翻轉(zhuǎn), 0: 沿x軸翻轉(zhuǎn), <0: x、y軸同時(shí)翻轉(zhuǎn) frame = cv.flip(frame, 1) face_detect_demo(frame) #waitKey()方法本身表示等待鍵盤(pán)輸入,參數(shù)是1,表示延時(shí)1ms切換到下一幀圖像,對(duì)于視頻而言; c = cv.waitKey(10) if c == 27:#當(dāng)鍵盤(pán)按下‘ESC’退出程序 break#cv.waitKey(0)參數(shù)為0,如cv2.waitKey(0)只顯示當(dāng)前幀圖像,相當(dāng)于視頻暫停,;cv.waitKey(0)cv.destroyAllWindows()#作用是能正常關(guān)閉繪圖窗口

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 97精品国产综合久久久久久欧美 | 手机看片日韩日韩韩 | 中文无线乱码二三四区 | 99久久精品免费看国产 | 亚洲 自拍 欧美 综合 | 久久久国产亚洲精品 | 久久国产热视频 | 国语精品视频在线观看不卡 | 亚洲成a人片毛片在线 | 国产成人精品亚洲77美色 | 美女被男人桶到嗷嗷叫爽网站 | 美女黄色在线 | 宅女福利视频在线看免费网站 | 欧美人与z0z0xxxx| 三级欧美在线 | 日本高清不卡中文字幕 | 国产精品一级视频 | 欧美精品亚洲精品日韩专区 | 美女黄频免费看 | xp123欧美亚洲国产日韩 | 国产美女在线精品亚洲二区 | 欧美巨乳在线观看 | 久久99精品久久久久久 | 日韩一区视频在线 | 久久草在线免费 | 国产一区国产二区国产三区 | 久久国产精品永久免费网站 | 亚洲综合美女 | 日韩欧美不卡一区二区三区 | 免费99视频| 国内精品久久久久不卡 | 欧美日韩国产人成在线观看 | 奇米四色综合久久天天爱 | 久久草在线视频免费 | 成年男人午夜片免费观看 | av片免费大全在线观看不卡 | 国产亚洲精品91 | 好吊妞国产欧美日韩视频 | 天天爽夜夜操 | 中文字幕亚洲不卡在线亚瑟 | 成人看片黄a免费看视频 |