<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • 樹莓派連接電腦顯示器(樹莓派新手入門教程)


    前言
    老早就看到新聞員工通過人臉識別監控老板來摸魚。
    有時候摸魚太入迷了,經常在上班時間玩其他的東西被老板看到。自從在咸魚上淘了一個樹莓派3b,嘗試做了一下內網穿透,搭建網站就吃灰了,接下來突發奇想就買了一個攝像頭和延長線

    Python摸魚神器,樹莓派opencv識別人臉,自動控制電腦顯示桌面

    接下來就是敲代碼了

    私信小編01即可獲取大量python學習資源


    環境

    • 樹莓派3+ python3.7
    • win7 python3.6


    過程

    首先樹莓派和電腦要在一個內網下面,就是一個路由器下面吧。要在樹莓派設置里面開啟攝像頭,然后安裝cv2,cv2有很多依賴庫需要手動安裝,很是費腦筋。原理介紹一下,人臉識別主要是依賴opencv開源的人臉檢測識別分類器,只需要導入就可以了,分類器github下載地址:

    把整個項目下載下來解壓,找到
    haarcascade_frontalface_default.xml文件,把這個文件和腳本文件放在一起就可以了。不想全部下載文章底部有項目地址可以單獨下載。用http訪問內網網址的方式通知工作的電腦按下win+d,這需要電腦安裝一個web服務器,我就用最簡單的web.py了,安裝web.py的時候要指定版本。

    Python摸魚神器,樹莓派opencv識別人臉,自動控制電腦顯示桌面
    import cv2
    import time
    import requests
    capture = cv2.VideoCapture(0)#獲取攝像頭對象
    casc_path = "haarcascade_frontalface_default.xml"
    faceCascade = cv2.CascadeClassifier(casc_path)
    color = (0, 255, 0)
    font = cv2.FONT_HERSHEY_SIMPLEX
     
     
    end_time=0
    countdown=0
    while(True):
        #讀取一幀圖像
        ret,frame=capture.read()#第一個返回值是bool值,判斷是否有圖像,第二個就是圖像
        if ret:
            #轉換為灰度圖
            grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
            faceRects = faceCascade.detectMultiScale(grey, scaleFactor = 1.2, minNeighbors = 3, minSize = (32, 32))#這是一個數組,可以輸出來看一下,有人臉的大小范圍的參數
            count = str(len(faceRects))
     
            if int(count) > 0:      #大于0則檢測到人臉
                start_time = time.time()#要判斷發送請求的時間間隔,兩次間隔不能少于30秒,不然體驗很不好
                if end_time<1:
                    requests.get("http://192.168.1.165:8080/")
                    end_time = time.time()
                countdown= int(start_time-end_time)   
                if start_time-end_time>30:
                    requests.get("http://192.168.1.165:8080/") #每次重啟電腦都要更換內網ip
                    end_time = time.time()
                for faceRect in faceRects: #繪制框框,單獨框出每一張人臉
                    x, y, w, h = faceRect    
                    cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 2)                     
            cv2.putText(frame, "count:"+count, (10, 40), font, 0.8, (0, 255, 255), 2)#添加一個人臉個數的文字顯示
            #顯示圖像
            cv2.imshow("test", frame)    
            c = cv2.waitKey(10)#等待退出鍵
            if c & 0xFF == ord('q'):
              break  

    接下來就是讓電腦接受http請求了,要讓電腦按win+d,需要pyautogui這個庫。剛開始還認為需要shell腳本搜了半天,這個web.py這個庫也是百度搜索出來的。集齊了各種庫,完全體現了python的簡單易用,哈哈

    # -*- coding: UTF-8 -*-
    import web
    import pyautogui
    import time
    urls = (
        '/(.*)', 'hello'
    )
     
    app = web.application(urls, globals())
     
     
    class hello:
        def GET(self, name):
     
            pyautogui.keyDown('win')
            pyautogui.keyDown('d')
            pyautogui.keyUp('d')
            pyautogui.keyUp('win')
            print("執行")
            return "go"
     
    if __name__ == "__main__":
        app.run()

    下面就是效果圖:

    Python摸魚神器,樹莓派opencv識別人臉,自動控制電腦顯示桌面
    Python摸魚神器,樹莓派opencv識別人臉,自動控制電腦顯示桌面

    總結
    很low很土很實用,哈哈,下一步可能會偽裝攝像頭,給其他摸魚的同事用用,運行指定軟件編輯器,更或者識別特定的人等等。

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费