中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
python 如何使用攝像頭(opencv)

1如何使用opencv 調(diào)取攝像頭

import cv2

#采用opencv的庫(kù)函數(shù)去調(diào)用攝像頭

import time

cap=cv2.VideoCapture(0)

#cv2.VideoCapture(0)代表調(diào)取攝像頭資源,其中0代表電腦攝像頭,1代表外接攝像頭(usb攝像頭)

cap.set(3,900)

cap.set(4,900)

# cap.set()設(shè)置攝像頭參數(shù):3:寬   4:

while(cap.isOpened()):

#cap.isOpened()返回布爾值,來(lái)查看是否攝像頭初始化成功

ret_flag, Vshow = cap.read()

#cap.read()返回兩個(gè)值,第一個(gè)值為布爾值,如果視頻正確,那么就返回true,  第二個(gè)值代表圖像三維像素矩陣

    cv2.imshow('Capture', Vshow)

k=cv2.waitKey(1)

#重中之重,這個(gè)必須有,這個(gè)獲取字母,但是一直不能通過(guò),即等待一定時(shí)間內(nèi)的用戶反饋,如果用戶沒(méi)有按下按鍵,則繼續(xù)等待循環(huán)。

Waitkey(0):無(wú)限等待按鍵

Waitkey(1):等待1毫秒,沒(méi)有繼續(xù)刷新

Waitkey(100):等待用戶100毫秒,沒(méi)有繼續(xù)刷新

且實(shí)現(xiàn)這個(gè)按下q的功能,必須是在opencv窗口中才能實(shí)現(xiàn),而不是在terminal

    if k==ord('s'):

        print('222222')

        print(cap.get(3))

        print(cap.get(4))

    elif k==ord('q'):

        print('完成')

        break

    print('攝像頭捕獲成功')

    # pass

# time.sleep(1)

cap.release()

cv2.destoryAllWindows()

代碼:

import cv2

import time

cap=cv2.VideoCapture(0)

cap.set(3,900)

cap.set(4,900)

while(cap.isOpened()):

    ret_flag, Vshow = cap.read()

    cv2.imshow('Capture', Vshow)

    k=cv2.waitKey(1)

    if k==ord('s'):

        print('222222')

        print(cap.get(3))

        print(cap.get(4))

    elif k==ord('q'):

        print('完成')

        break

    #print('攝像頭捕獲成功')

    # pass

# time.sleep(1)

cap.release()

cv2.destoryAllWindows()

OpenCV-Python(1)在Python中使用OpenCV進(jìn)行人臉檢測(cè)

OpenCV是如今最流行的計(jì)算機(jī)視覺(jué)庫(kù),而我們今天就是要學(xué)習(xí)如何安裝使用OpenCV,以及如何去訪問(wèn)我們的攝像頭。然后我們一起來(lái)看看寫一個(gè)人臉檢測(cè)程序是如何地簡(jiǎn)單,簡(jiǎn)單到只需要幾行代碼。

在開始之前,我假設(shè)你已經(jīng)對(duì)Python有一定的了解。當(dāng)然,如果你覺(jué)得你還不夠格,這里有推薦一些學(xué)習(xí)Python的電子書,你可以先學(xué)習(xí)下Python,如此可以讓你更好地理解接下來(lái)的步驟。另外,這里還推薦一本電子書來(lái)學(xué)習(xí)OpenCV。

好,不浪費(fèi)時(shí)間,開始吧。

To setup opencv in python environment you will need these things ready ( match the versions to follow along with this tutorial),
首先我們需要先準(zhǔn)備好這些環(huán)境(版本記得配好):

  • Python 2.x

  • OpenCV 3 (2也行,同理

  • Numpy庫(kù) (這個(gè)可以在稍后用pip下載)

首先,對(duì)于下載Python,我們可以先到官網(wǎng)上下對(duì)應(yīng)的版本,如果是Windows就可能是msi格式的版本,如果是Mac就可能是pkg格式的安裝包,如果是Linux則可能是源碼包。

安裝和Python后打開命令行就可以使用pip命令進(jìn)行Python包的安裝了,如:

由于OpenCV使用Numpy庫(kù),因此先通過(guò)命令pip install numpy安裝Numpy庫(kù)。安裝完后,嘗試導(dǎo)入,沒(méi)有報(bào)錯(cuò)則ok:

然后進(jìn)入OpenCV官網(wǎng)下對(duì)應(yīng)的版本并安裝,嘗試導(dǎo)入:

嘗試人臉檢測(cè)

準(zhǔn)備:我們需要準(zhǔn)備pretrained分類器,在github里面的opencv源碼中下載,搜索就好

萬(wàn)事俱備,只欠東風(fēng)。我們來(lái)寫代碼檢測(cè)人臉吧,來(lái)一發(fā)OpenCV的Hello world。

在這里我們準(zhǔn)備使用pre-trained的XML文件(這個(gè)文件下載方法:在github上找到opencv,然后找到,然后找到文件,采用右鍵下載就可以了),這些XML文件都較難訓(xùn)練,但是我們不需要擔(dān)心,因此OpenCV已經(jīng)為我們提供了很多人臉檢測(cè)相關(guān)的pre-trained分類器。

想要使用這寫分類器,我們需要將分類器的XML文件haarcascade_frontalface_default.xmlopencv文件夾/sources/data/haarcascades/下復(fù)制到我們的項(xiàng)目目錄下,就是我們將要寫程序的目錄下。如果沒(méi)有opencv文件夾/sources/data/haarcascades/這個(gè)目錄,可以嘗試找一下opencv文件夾/share/OpenCV/haarcascades/。只要找到如下文件即可:

然后如果我們要加載這個(gè)分類器的話,如此就好:

detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

然后接下來(lái)我們先來(lái)測(cè)試一下攝像頭吧,

cap = cv2.VideoCapture(0)

ret, img = cap.read()

cv2.imshow('windowname', img)

cv2.waitKey(0)

# 釋放攝像頭資源

cap.release()

以上的代碼是調(diào)用你電腦的0號(hào)攝像頭,并展示出來(lái)。當(dāng)然,如果你有多個(gè)攝像頭,那么你也可以試試別的id,修改VideoCapture函數(shù)的參數(shù)即可。

其中cap.read()就是從攝像頭獲取到圖像,這個(gè)函數(shù)返回了兩個(gè)變量,第一個(gè)為布爾值表示成功與否,以及第二個(gè)是圖像。

然后程序通過(guò)imshow()展示圖片,其第一個(gè)傳入的參數(shù)為窗口的名稱,而第二個(gè)就是要展示的圖片,以上代碼傳入的就是我們的自拍。

waitKey是用來(lái)停在圖片的展示界面,讓你看清楚,參數(shù)可以是10、100、1000等,單位是毫秒,這里填0就是一直停著。注意了,如果停留的時(shí)間不夠久,就可能看不見imshow的照片了。

運(yùn)行了這段代碼,你將會(huì)看到攝像頭所拍攝的畫面,一般來(lái)說(shuō)就是你自己了。

接下來(lái)我們將圖片先轉(zhuǎn)換為灰度圖片,

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

然后就開始了人臉檢測(cè)之旅:

faces = detector.detectMultiScale(gray, 1.3, 5)

以上的這句代碼會(huì)等到一串list,list中的每個(gè)都有x, y, height, width四個(gè)變量。其中l(wèi)ist表示檢測(cè)到的人臉,即list的size就是人臉的個(gè)數(shù),而每個(gè)人臉在圖片中的位置是(x, y, height, width)。

為了能讓我們更直觀地看出來(lái)檢測(cè)結(jié)果,我們將這些人臉框出來(lái):

for (x, y, w, h) in faces:

    cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)

更進(jìn)一步

現(xiàn)在我們已經(jīng)通過(guò)攝像頭檢測(cè)到人臉了,但是我們真正需要的是不是一張靜態(tài)的圖片,我們需要的是一個(gè)能檢測(cè)的實(shí)時(shí)動(dòng)態(tài)視頻流。因此我們加一個(gè)循環(huán),然后不斷的檢測(cè),最終在顯示在新窗口中。

detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

cap = cv2.VideoCapture(0)

while True:

    ret, img = cap.read()

    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    faces = detector.detectMultiScale(gray, 1.3, 5)

    for (x, y, w, h) in faces:

        cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)

    cv2.imshow('frame', img)

    if cv2.waitKey(1) & 0xFF == ord('q'):

        break

cap.release()

cv2.destroyAllWindows()

需要注意的是,結(jié)尾用了waitKey和ord實(shí)現(xiàn)了按q退出的功能,就是每一毫秒都在檢測(cè)鍵盤有沒(méi)有按下了q,要是按下了就退出循環(huán)了。接下來(lái)就釋放資源。

總結(jié)

在本文中,我們學(xué)習(xí)了如何使用Python中的OpenCV,即通過(guò)代碼寫了一個(gè)人臉檢測(cè)的程序。我們溫習(xí)或?qū)W習(xí)了這些知識(shí)點(diǎn):

  • 使用OpenCV的分類器

  • 從攝像頭中讀取照片

  • 在圖片上換框框

  • 在新窗口上展示圖片

  • 實(shí)時(shí)地進(jìn)行人臉檢測(cè)

P.S. 你們發(fā)現(xiàn)了XML那里有一個(gè)叫貓臉識(shí)別的文件嗎?。?!

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
超有趣!手把手教你使用樹莓派實(shí)現(xiàn)實(shí)時(shí)人臉檢測(cè)
只需 15 行代碼即可進(jìn)行人臉檢測(cè)(使用Python 和 OpenCV)
用Python實(shí)現(xiàn)簡(jiǎn)單的人臉識(shí)別,10分鐘搞定?。ǜ皆创a)
python
利用OpenCV實(shí)現(xiàn)人臉檢測(cè)
使用opencv進(jìn)行實(shí)時(shí)人臉 眼睛 微笑檢測(cè)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服